我在用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;
}
已解決!! 先加個while(scanf("%d",a!=EOF) 然後輸出加個換行 和把質數那行改成數字就過了