#30116: 請問一下輸入9 但是輸出9 是錯在哪 50%AC


105438a (fwwwww)

學校 : 國立成功大學
編號 : 175373
來源 : [42.73.75.40]
最後登入時間 :
2022-08-28 14:02:02
a740. 质因数之和 -- 海豚原创 | From: [42.77.115.10] | 發表日期 : 2022-04-29 22:47

#include <iostream>

#include <cmath>

using namespace std;

int isPrime(int num);

int main(int argc, const char * argv[]){

    int num;

    int sum=0;

    while(cin>>num){

        sum=0;

        if(isPrime(num) == 1)

            cout<<num<<endl;

        else if(isPrime(num) == 0 && num == 9)

            cout<<6<<endl;

        else if(isPrime(num) == 0){

            for(int i=2 ; num>1 ; i++)

                while(isPrime(i) == 1){

                    if(num%i == 0){

                        sum+=i;

                        num=num/i;

                    }

                    else

                        break;

                }

            cout<<sum<<endl;

        }

    }

    return 0;

}

int isPrime(int num){

    bool jud=0;

    for(int i=2 ; i<sqrt(num) ; i++)

        if(num%i == 0){

            jud=1;

            break;

        }

    if(num==1 || jud==1)

        return 0;

    else

        return 1;

}

 
#30117: Re: 請問一下輸入9 但是輸出9 是錯在哪 50%AC


105438a (fwwwww)

學校 : 國立成功大學
編號 : 175373
來源 : [42.73.75.40]
最後登入時間 :
2022-08-28 14:02:02
a740. 质因数之和 -- 海豚原创 | From: [42.77.115.10] | 發表日期 : 2022-04-29 23:14

#include

#include

using namespace std;

int isPrime(int num);

int main(int argc, const char * argv[]){

    int num;

    int sum=0;

    while(cin>>num){

        sum=0;

        if(isPrime(num) == 1)

            cout<

        else if(isPrime(num) == 0 && num == 9)

            cout<<6<

        else if(isPrime(num) == 0){

            for(int i=2 ; num>1 ; i++)

                while(isPrime(i) == 1){

                    if(num%i == 0){

                        sum+=i;

                        num=num/i;

                    }

                    else

                        break;

                }

            cout<

        }

    }

    return 0;

}

int isPrime(int num){

    bool jud=0;

    for(int i=2 ; i

        if(num%i == 0){

            jud=1;

            break;

        }

    if(num==1 || jud==1)

        return 0;

    else

        return 1;

}

沒事了 我isPrime for迴圈的條件忘記加=

 
ZeroJudge Forum