社区讨论
83分求调
P2626斐波那契数列(升级版)参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mj4dx06o
- 此快照首次捕获于
- 2025/12/13 22:21 3 个月前
- 此快照最后确认于
- 2025/12/16 17:00 3 个月前
C
#include <stdio.h>
#include <math.h>
int F(int n) {
if (n <= 2) return 1;
int a = 1, b = 1, c;
for (int i = 3; i <= n; i++) {
c = (a + b) % (1 << 31);
a = b;
b = c;
}
return b;
}
int IsPrime(int n){
if(n == 1){
return 0;
}
if(n == 2){
return 1;
}
if(n%2 == 0){
return 0;
}
for(int i = 3;i*i <= n;i += 2){
if(n%i == 0){
return 0;
}
}
return 1;
}
int main(){
int n;
int k = 2;
scanf("%d",&n);
int Fn = F(n);
if(IsPrime(Fn)){
printf("%d=%d",Fn,Fn);
return 0;
}
else{
printf("%d=",Fn);
int temp = Fn;
for(int i = 2;i*i <= temp;i++){
while(temp%i == 0){
printf("%d*",i);
temp /= i;
}
}
if(temp > 1){
printf("%d",temp);
}
}
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...