这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
|
2020-2021:teams:manespace:cf_641_div_2 [2020/05/15 17:52] quantumbolt |
2020-2021:teams:manespace:cf_641_div_2 [2020/05/18 22:08] (当前版本) quantumbolt |
||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | 啊,这周又是一堆的作业,只打了一场比赛,没想到遇到了国人的数论专场,m(m(m(m(打着打着就不会了,😔 | + | 啊,这周又是一堆的作业,只打了一场比赛,没想到遇到了国人的数论专场,m( m( m( m(打着打着就不会了,😔 |
| ===== A ===== | ===== A ===== | ||
| - | * 题意:给一个数$n$ ,进行$k$次运算 运算规则,得到$n$除了1之外能够整除$n$的最小数字,然后将结果$f(n)$加到$n$上,在经过k次运算,得到最终结果 | + | * 题意:给一个数$n$ ,进行$k$次运算 运算规则,得到$n$除了1之外能够整除$n$的最小数字,然后将结果$f(n)$加到$n$上,在经过$k$次运算,得到最终结果 |
| * 题解:将$n$分为偶数和奇数两部分,如果$n$为偶数,$f(n)$2,$n+f(n)$也是偶数,之后的迭代就直接加$2$就行了,如果$n$为奇数,有两种情况,第一,他为质数,第二,他的$f(n)$为质数,但是无论如何,他在一次迭代后得到的数都是偶数,然后再用一的情况就行了。 | * 题解:将$n$分为偶数和奇数两部分,如果$n$为偶数,$f(n)$2,$n+f(n)$也是偶数,之后的迭代就直接加$2$就行了,如果$n$为奇数,有两种情况,第一,他为质数,第二,他的$f(n)$为质数,但是无论如何,他在一次迭代后得到的数都是偶数,然后再用一的情况就行了。 | ||
| * 代码:<code cpp> | * 代码:<code cpp> | ||
| #include <bits/stdc++.h> | #include <bits/stdc++.h> | ||
| + | |||
| using namespace std; | using namespace std; | ||
| + | |||
| int sdiv(int n){ | int sdiv(int n){ | ||
| for(int i = 2; i <= sqrt(n); i++){ | for(int i = 2; i <= sqrt(n); i++){ | ||
| 行 14: | 行 16: | ||
| return n; | return n; | ||
| } | } | ||
| + | |||
| int main(){ | int main(){ | ||
| int n; | int n; | ||