#26461: 可以幫我看看哪裡錯嗎?謝謝!(c)


ck1070031@gl.ck.tp.edu.tw (ck1070031趙唯竣)


#include<stdio.h>

 

int P(int n){

int i;

if(n<2){

return 0;

}

else if(n<=6){

for(i=2;i*i<n+1;i++){

if(n%i==0){

return 0;

}

else{

return 1;

}

}

}

else if(n>6&&((n-1)%6==0||(n-5)%6==0)){

for(i=2;i*i<n+1;i++){

if(n%i==0){

return 0;

}

else{

return 1;

}

}

}

else{

return 0;

}

}

 

int main(){

int b;

while(scanf("%d",&b)!=EOF){

if(P(b)){

printf("質數\n");

}

else{

printf("非質數\n");

}

}

return 0;

}

#26462: Re:可以幫我看看哪裡錯嗎?謝謝!(c)


cges30901 (cges30901)


#include

 

int P(int n){

int i;

if(n<2){

return 0;

}

else if(n<=6){

for(i=2;i*i<n+1;i++){

if(n%i==0){

return 0;

}

else{

return 1;

}

}

}

else if(n>6&&((n-1)%6==0||(n-5)%6==0)){

for(i=2;i*i<n+1;i++){

if(n%i==0){

return 0;

}

else{

return 1;

}

}

}

else{

return 0;

}

}

 

int main(){

int b;

while(scanf("%d",&b)!=EOF){

if(P(b)){

printf("質數\n");

}

else{

printf("非質數\n");

}

}

return 0;

}

你的
 else{
     return 1;
 }

讓for迴圈只執行一次就停了