2 条题解
-
5
#include <bits/stdc++.h> using namespace std; int n; bool first = true; void print(long long x) { if (first) { first = false; cout << "="; } else { cout << "*"; } cout << x; } int main(){ long long a = 1, b = 1, c, n; cin >> n; for (int i = 3; i <= n; i++) { c = (a + b) % (1 << 31); a = b; b = c; } cout << c; for (int i = 2; i * i <= c; i++) { if (c % i == 0) { while (c % i == 0) { c /= i; print(i); } } } if (c > 1) print(c); return 0; }
-
0
首先用递推求出f(n),然后分解质因数即可。需要注意输出格式,可以用一个变量first表示当前输入的是否是第一个质因数,并分情况处理。
核心代码
long long a = 1, b = 1, c, n; cin >> n; for (int i = 3; i <= n; i++) { c = (a + b) % (1 << 31); a = b; b = c; } cout << c; for (int i = 2; i * i <= c; i++) { if (c % i == 0) { while (c % i == 0) { c /= i; print(i); } } } if (c > 1) print(c);
print函数
bool first = true; void print(long long x) { if (first) { first = false; cout << "="; } else { cout << "*"; } cout << x; }
- 1
信息
- ID
- 639
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- (无)
- 递交数
- 150
- 已通过
- 87
- 上传者