//法一。当数据不是素数时需要算很多才能停:( #include<stdio.h> intmain() { int x; scanf_s("%d", &x); int i; for (i = 2; i < x; i++) { if (x % i == 0) { break; } } if (i < x) { printf("%d不是素数\n",x); } else { printf("%d是素数\n",x); } return0; }
//法二。:) #include<stdio.h> intmain(){ int x; scanf_s("%d", &x); int i; int isPrime = 1; for (i = 2; i < x; i++) { if (x % i == 0) { isPrime = 0; break; } } if (isPrime == 1) { printf("%d不是素数\n",x); } else { printf("%d是素数\n",x); } return0; }
//法三。=) #include<stdio.h> #include<math.h> #define N 15000 intmain() { int a, i, j, k, num, sum = 0; printf("Q1:要求多少以内的素数?\nQ2:要多少个素数?\n"); printf("Q1请输入0,Q2请输入1\n请输入:"); scanf_s("%d", &a); while (a != 1 && a != 2) { printf("请重新输入:"); scanf_s("%d", &a); } if (a == 0) { printf("请输入数字:"); scanf_s("%d", &num); for (i = 2; i <= num; i++) { k = sqrt(i); for (j = 2; j <= k; j += 1) { if (i % j == 0) { break; } } if (j > k) { printf("%d\t", i); sum++; if (sum % 10 == 0) { printf("\n"); } } } printf("\n%d内一共有%d个素数", num, sum); } elseif (a == 1) { printf("请输入数字:"); scanf_s("%d", &num); for (i = 2; i <= N; i++) { k = sqrt(i); for (j = 2; j <= k; j += 1) { if (i % j == 0) { break; } } if (j > k) { printf("%d\t", i); sum++; if (sum % 10 == 0) { printf("\n"); } if (sum == num) { break; } } } } return0; }