方法一:
#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的倍数相邻。
文章来源地址https://www.toymoban.com/news/detail-759510.html
文章来源:https://www.toymoban.com/news/detail-759510.html
到了这里,关于(c语言)素数判断的四种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!