#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;
}
#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迴圈只執行一次就停了