程序分析:
1、质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。
2、nn能被mm整除,则m≤n2m≤n2,所以只需要穷举m∈[2,n2]m∈[2,n2]即可,若在穷举过程中出现了nn的情况则n是质数,若mm能自加到m=n2m=n2则n不是质数。
#include "stdio.h" int main(void) { int n = 0; while (1) { printf("请输入一个数(质数是大于1的自然数):"); scanf_s("%d", &n); if (n == 2 || n == 3) printf("%d是质数!\n", n); for (int m = 2; m <= n / 2; m++) { if (n%m == 0) { printf("%d不是质数!\n", n); break; } if(m == n/2) printf("%d是质数!\n", n); } } return 0; }