点击全文阅读
方法一:
#include <stdio.h> //方法一:在2到n-1之间任取一个数,如果n能被所取的数整除则不是素数,否则就是素数 int main() //因为我们只需要循环到i<n,而不是i<=n,否则就会出错。{ int i, n; printf("请输入数值 "); scanf("%d", &n); if (n<=1) { printf("数据错误,不在取值范围内\n"); return 0; } for (i = 2; i <= n - 1; i++) //在2到n-1之间任取一个数 { if (n % i == 0) { break; } } if (i == n) { printf("这是素数\n"); //直到循环结束都未被整除,是素数 } else { printf("这不是素数\n"); //能被整除,不是素数 } return 0;}
方法二:
#include<stdio.h> //方法二:在2到n/2之间任取一个数,如果n能被所取的数整除则不是素数,否则就是素数int main(){ int n, i; printf("请输入数值: "); scanf("%d", &n); if (n<=1) { printf("数据错误,不在取值范围内\n"); return 0; } 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<stdio.h> //方法三:在2到sqrt(n)之间任取一个数,如果n能被整除则不是素数,否则就是素数 #include <math.h> //引用数学公式的声明int main(){ int i, j, n; printf("请输入数值: "); scanf("%d", &n); j = (int)sqrt(n); //j为n开平方根,也就是根号下n if (n<=1) { printf("数据错误,不在取值范围内\n"); return 0; } 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的倍数相邻。
点击全文阅读