因子个数——质因子分解

https://www.nowcoder.com/pat/2/problem/264
吐槽:必须要先计算好,然后直接输出,不然会超时。
主要是两个函数,一个素数表,一个因子个数

#include<cstdio>
#define N 100005
int p[N]={0};
int prime[N];
int k=0;
int f[N];
void prime_table(){
    for(int i=2;i<N;i++){
        if(p[i]==0){
            prime[k++] = i;
            for(int j =i+i;j<N;j+=i){
                p[j] = 1;
            }
        }
    }
}
void ff(){
        for(int t = 2;t < N; t++){
        int num = 0,tmp = t;
        for(int i=0;prime[i] <= t;i++){
            if(tmp % prime[i] == 0){
                num++;
                tmp /= prime[i];
                while(tmp%prime[i]==0){
                    tmp /= prime[i];
                }
            }
            if(tmp == 1) break;
        }
        f[t] = num; 
    }
}
int main(){
    int n;
    prime_table();
    ff();
    while(scanf("%d",&n) != EOF){
        printf("%d\n",f[n]);
    }
    return 0;
}
全部评论

相关推荐

Tom哥981:这份简历是“大一新生硬凹资深后端”的典型反面教材,槽点离谱到能让面试官直接笑出声: ### 1. 「年龄+入学时间」和项目复杂度完全脱节,可信度直接归0 你2024年7月才入学(现在刚读了1年多),19岁的大一新生,能把Vue3+Spring Boot+ShardingSphere+K8s+AI这些技术全塞进两个项目里?别说实际开发,光把这些技术的文档看完都得半年——这不是“能力强”,是“把招聘JD里的技术词全抄过来造假”,明摆着没碰过实际代码
点赞 评论 收藏
分享
2025-12-22 15:04
江西农业大学 Web前端
SaviorSu:直接说下学期可以请假,一般情况学校允许我26届,大三就直接去实习了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务