C语言判断素数的几种方法-创新互联
素数的定义:只能被常数1或自己整除,不能被其他整数整除的正整数。
成都创新互联公司于2013年成立,先为白云等服务建站,白云等地企业,进行企业商务咨询服务。为白云企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。1.从2——x-1循环#includeint main()
{
int x;
int IsPrime = 1; //定义变量IsPrime并赋初值1 即x为素数
scanf_s("%d", &x);
for (int i = 2; i< x; i++)
{
if (x % i == 0)
{
IsPrime = 0;
break;
}
}
if (IsPrime == 0)
printf("%d is not a prime number", x);
else
printf("%d is a prime number", x);
return 0;
}
测试结果:
23
23 is a prime number
需要注意的是定义的变量IsPrime赋初值为1;其次是for循环中i是从2开始增加。另外加一句:break;与continue;的区别在于:程序执行到break;语句时,会跳出当前循环即结束当前循环;而continue;是不再执行当前循环内continue;语句之后的部分。
拓展:利用循环嵌套输出n以内的素数
#includeint main()
{
int n;
int count=0;
int i,j;
scanf_s("%d",&n);
for(i=1;i<=n;i++)
{
int IsPrime=1;
for( j=2;j
测试结果:
2.除去偶数之后,3——x-1,每次加250
1 3 5 7 9
11 13 15 17 19
21 23 25 27 29
31 33 35 37 39
41 43 45 47 49
定义一个判断是否为素数的函数
int IsPrime(int x)
{
int ret=1; //ret含义与之前的变量IsPrime相同
if(x==1||(x!=2&&x%2==0))
ret=0;
for(int i=3;i
3.通过sqrt()函数int IsPrime(int x)
{
int ret=1; //ret含义与之前的变量IsPrime相同
if(x==1||(x!=2&&x%2==0))
ret=0;
for(int i=3;i
4.通过判断是否能被已经判断过的并且#include#define N 50
int IsPrime(int x, int known[], int number);
int main()
{
int i = 3;
int count = 1;
int array[N]={2};
while (count< N)
{
if (IsPrime(i, array, count))
array[count++] = i;
i++;
}
for (i = 0; i< N; i++)
{
printf("%d", array[i]);
if ((i + 1) % 5 == 0)
printf("\n");
else
printf("\t");
}
return 0;
}
int IsPrime(int x, int known[], int number)
{
int ret = 1;
int i;
for ( i = 0; i< number; i++)
{
if (x % known[i] == 0)
{
ret = 0;
break;
}
}
return ret;
}
测试结果:
2 3 5 7 11
13 17 19 23 29
31 37 41 43 47
53 59 61 67 71
73 79 83 89 97
101 103 107 109 113
127 131 137 139 149
151 157 163 167 173
179 181 191 193 197
199 211 223 227 229
以上便是几种判断素数的方法
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网站栏目:C语言判断素数的几种方法-创新互联
网页URL:http://cdiso.cn/article/hipci.html