int main() { int input = 0; scanf_s("%d",&input); if (input < 2) { printf("wrong input"); return 0; } for (int i = 2; i < input; i++) { if (input % i == 0)//能整除说明不是素数 { printf("not prime");//不是素数就不要循环下去了 return 0; } } //如果流程到了这里,说明input已经对i到input-1这中间所有的整数都尝试过了 //而且都不能整除,说明是素数。 printf("is prime"); return 1;
今天又想出了一种方法,感觉这种比较好理解。
int main() { int Isprime ;//素数标志,如果一个数是素数,它的结果就是1,不是它的结果即使0 int input = 0; scanf_s("%d", &input); if (input < 2) { printf("wrong input "); return 0; } for (int i = 2; i < input; i++) { if (input%i == 0) { Isprime = 0;//不是素数 break;// 不是素数就不用往下循环了,直接跳出来。 } else { Isprime = 1; } } if (Isprime == 1) { printf("is prime "); } else { printf("not prime "); } }