C语言求素数的几种方式总结
目录
一、判断n是否能被2~n-1整除
输入的数n不能被2-(n-1)整除,说明是素数
输入的数n能被2-(n-1)整除,说明不是素数
注意:1不是素数,素数是指大于1的自然数,除了1和该数自身外,无法被其他自然数整除的数。
方法一
#include
int main()
{
int i, n;
printf("请输入一个数:");
scanf("%d", &n);
for (i = 2; i < n ; i++)
{
if (n%i == 0)
break;
}
if (n <=1 ) printf("这不是素数
");
else if (i < n) printf("这不是素数
");
else printf("这是素数
");
return 0;
}
方法二
#include
int main()
{
int i, n;
printf("请输入一个数:");
scanf("%d", &n);
if(n<=1)
printf("这不是素数
");
else
{
for (i = 2; i < n ; i++)
{
if (n%i == 0)
break;
}
if(i>=n)
printf("这是素数
");
else
printf("这不是素数
");
}
return 0;
}
二、判断n是否能被2~√n间的整数整除
输入的数n不能被2-√n整除,说明是素数
输入的数n能被2-√n整除,说明不是素数
方法一
#include
#include
int main()
{
int n,i;
double k;
printf("请输入一个数:");
scanf("%d", &n);
k = sqrt(n);
for (i = 2; i <= k;i++)
{
if (n%i == 0) break;
}
if (n <=1 ) printf("这不是素数
");
else if (i <= k) printf("这不是素数
");
else printf("这是素数
");
return 0;
}
方法二
#include
#include
int main()
{
int n,i,k;
printf("请输入一个数:");
scanf("%d", &n);
if(n<=1)
printf("这不是素数
");
else
{
k=sqrt(n);
for (i=2;i<=k;i++)
{
if (n%i==0)
break;
}
if(i>=k+1)
printf("这是素数
");
else
printf("这不是素数
");
}
return 0;
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章: