社区讨论

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 条回复,欢迎继续交流。

正在加载回复...