#4800: C 請問 在line8 出錯了 有人能幫忙嘛?


lolomonster (lolo)


#include<stdio.h>
#include<math.h>

int main()
{
 int a,i,k;

 while(scanf("%d",&a)==1)
 {
if(a==2) {printf("質數\n");}

else{

k=(int)sqrt(a);

for(i=2;i<k+1;i++)
{
if(a%i==0)
{printf("非質數\n");break;}
if(a%i!=0)
{printf("質數\n");}
}
}
 }
 return 0;
}
 
我不知道哪裡出錯了呢
line 8到底是甚麼?@@ 
#4802: Re:C 請問 在line8 出錯了 有人能幫忙嘛?


popular10347 (ICPC// 哪時能唸到高等演算法T^T)


#include
#include

int main()
{
 int a,i,k;

 while(scanf("%d",&a)==1)
 {
if(a==2) {printf("質數\n");}

else{

k=(int)sqrt(a);

for(i=2;i
{
if(a%i==0)
{printf("非質數\n");break;}
if(a%i!=0)
{printf("質數\n");}
}
}
 }
 return 0;
}
我不知道哪裡出錯了呢
line 8到底是甚麼?@@ 


for(i=2;i<k+1;i++)
{
      if(a%i==0)
     {printf("非質數\n");break;}
     if(a%i!=0)
    {printf("質數\n");}
}
迴圈的第二個if是多餘的
你應該讓他在for迴圈外面判斷看i是到哪一數字?
簡單的說你自己輸入9就會發現錯了