#12641: 不用建表的AC方式 XDD


kirksud (KirkSuD)

學校 : 臺北市立麗山高級中學
編號 : 66737
來源 : [140.115.208.111]
最後登入時間 :
2019-12-30 22:09:01
a740. 质因数之和 -- 海豚原创 | From: [180.217.154.160] | 發表日期 : 2017-08-31 12:57

這樣可以有大約O(根號(最大質因數)),0ms

#include<stdio.h>
int main(){
    int x,res,cur;
    while (scanf("%d",&x)!=EOF){
        res=0;
        while ((x&1)==0){//2是唯一的偶數質數 先處理 快一點點
            res+=2;
            x>>=1;
        }
        cur=3;
        while (x!=1 && (cur*cur)<=x){//還沒分解完且未到根號x
            if(x%cur){cur+=2;}//下個數 繼續跑
            else{res+=cur;x/=cur;}//可分解就分解並加入答案
        }
        if(x==1){printf("%d\n",res);}//分解完了
        else{printf("%d\n",x+res);}//x是質因數 也要加
    }
    return 0;
}

 
ZeroJudge Forum