C语⾔判断素数的⼏种⽅法
素数的定义:只能被常数1或⾃⼰整除,不能被其他整数整除的正整数。
1.从2——x-1循环
#include<stdio.h>
int 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以内的素数
#include<stdio.h>
int 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<n;j++)
{
if(i%j==0)
IsPrime=0;
break;
}
if (IsPrime == 1)
{
printf("%d\t", i);
count++;
if (count % 5 == 0)    //每5个输出做⼀⾏
printf("\n");
}
}
return 0;
}
测试结果:
50
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
2.除去偶数之后,3——x-1,每次加2        定义⼀个判断是否为素数的函数
int IsPrime(int x)
{
int ret=1;      //ret含义与之前的变量IsPrime相同    if(x==1||(x!=2&&x%2==0))
ret=0;
for(int i=3;i<x;i+=2)
{
if(x%i==0)
{
ret=0;
break;
}
}
return ret;
}
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<sqrt(x);i+=2)      //循环到sqrt(x)
{
if(x%i==0)
{
ret=0;
break;
}
}
return ret;
}
//使⽤sqrt()函数需要包含头⽂件<math.h>
4.通过判断是否能被已经判断过的并且<x的素数整除,利⽤数组
#include<stdio.h>
#define N 50
int IsPrime(int x, int known[], int number);
int main()
c++判断素数
{
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
以上便是⼏种判断素数的⽅法

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。