方法一:
#include //方法一:在2到n-1之间任取一个数,如果n能被所取的数整除则不是素数,否则就是素数 int main()//因为我们只需要循环到i<n,而不是i<=n,否则就会出错。{ int i, n; printf("请输入数值 "); scanf("%d", &n); for (i = 2; i = n) {printf("这是素数\n"); //直到循环结束都未被整除,是素数 } else {printf("这不是素数\n");//能被整除,不是素数 }return 0;}
方法二:
#include//方法二:在2到n/2之间任取一个数,如果n能被所取的数整除则不是素数,否则就是素数int main(){ int n, i; printf("请输入数值: "); scanf("%d", &n); for (i = 2; i <= n / 2; i++) //在2到n/2之间任取一个数 {if (n % i == 0){ printf("这不是素数\n"); //能被整除,不是素数 break;} } if (i == n / 2 + 1) {printf("这是素数\n");//循环结束还不能被整除,是素数 } return 0;}
方法三:
#include//方法三:在2到sqrt(n)之间任取一个数,如果n能被整除则不是素数,否则就是素数#include //引用数学公式的声明int main(){ int i, j, n; printf("请输入数值: "); scanf("%d", &n); j = (int)sqrt(n);//j为n开平方根,也就是根号下n for (i = 2; i <= j; i++)//在2到sqrt(n)之间任取一个数 {if (n % i == 0){ break;} } if (j < i) {printf("这是素数\n");//循环结束还不能被整除,是素数 } else {printf("这不是素数\n"); //被整除,不是素数 } return 0;}
方法四:质数分布的规律:大于等于5的质数一定和6的倍数相邻。