#13189: C 為什麼顯示WA


hcc19761103 (tony11306)

學校 : 高雄市立中山高級中學
編號 : 74004
來源 : [106.104.100.41]
最後登入時間 :
2022-02-22 13:57:13
a010. 因數分解 | From: [220.142.226.8] | 發表日期 : 2017-12-31 12:23

我在用codeblock的時候輸出看起來都是正常的呀@@

怎麼到這邊變成WA?

#include <stdio.h>
#include <stdlib.h>


int other(int a,int b)//可以除至少2次
{
    int i;

    for(i=2;a%b==0;i++)//除到餘數不為0
    {
        a=a/b;
     }
    if(a==1)//判斷結尾要不要顯示*
    {
        printf("%d^%d",b,i-2);
        return a;
    }
    printf("%d^%d * ",b,i-2);
    return a;
    }

int gan(int a,int b)//只能除一次
{
    if(a==b)//判斷結尾要不要顯示*
    {
        printf("%d",b);
        return a;
    }
        printf("%d * ",b);
        return a/b;
}

int main()
{
    int a,b,i=1;
    scanf("%d",&a);
    for(b=1;b<=a;b++){ if(a%b==0){i++;} }//判斷是否為質數
    if(i==3)
    {
        printf("質數");
        return 0;
    }
    for(b=2;a>=b;b++)//從2開始迴圈因式分解
    {
        if( (a/b)%b==0 && a%b==0)//判斷是否能除至少2次
        {
            a=other(a,b);
            continue;
        }
        if(a%b==0)//判斷是否只能除一次
        {
            a=gan(a,b);
        }
        else
        {
            continue;
        }
    }
    return 0;
}

 
#13190: Re:C 為什麼顯示WA


hcc19761103 (tony11306)

學校 : 高雄市立中山高級中學
編號 : 74004
來源 : [106.104.100.41]
最後登入時間 :
2022-02-22 13:57:13
a010. 因數分解 | From: [220.142.226.8] | 發表日期 : 2017-12-31 12:27

by the way 那幾個function名字亂取的,別太在意

 
#13191: Re:C 為什麼顯示WA


hcc19761103 (tony11306)

學校 : 高雄市立中山高級中學
編號 : 74004
來源 : [106.104.100.41]
最後登入時間 :
2022-02-22 13:57:13
a010. 因數分解 | From: [220.142.226.8] | 發表日期 : 2017-12-31 12:49

已解決!! 先加個while(scanf("%d",a!=EOF) 然後輸出加個換行 和把質數那行改成數字就過了




 
ZeroJudge Forum