#17546: 請問我哪裡寫錯了(C)


brianpon123@gmail.com (Brian Pon)


#include<stdio.h>
main()
{
 int a,b,c;
 scanf("%d",&a);
 for(b=2;b<=a;b++)
 {
  c=0;
  while(a%b==0)
  {
   a=a/b;
   c++;
  }
  if(c>1)
  {
      printf("%d^%d",b,c);
      if(a>1)
      {
       printf(" * ");
      }
     }
     else if (c>0)
     {
      printf("%d",b);
      if(a>1)
      {
       printf(" * ");
      }
  }
  
 }
}

#17563: Re:請問我哪裡寫錯了(C)


freedom501999@gmail.com (帥氣魔方生)


#include
main()
{
 int a,b,c;
 scanf("%d",&a);
 for(b=2;b<=a;b++)
 {
  c=0;
  while(a%b==0)
  {
   a=a/b;
   c++;
  }
  if(c>1)
  {
      printf("%d^%d",b,c);
      if(a>1)
      {
       printf(" * ");
      }
     }
     else if (c>0)
     {
      printf("%d",b);
      if(a>1)
      {
       printf(" * ");
      }
  }
  
 }
}


這題有很多測資,你只讀了一筆資料

用 while ( scanf("%d",&a) != EOF ) 把原本 scanf("%d",&a); 下面的所有程式包進迴圈

應該就可以了