编程学习网 > 编程语言 > C/C++开发 > C语言判断素数的4个方法(c语言素数的判断条件)
2023
02-20

C语言判断素数的4个方法(c语言素数的判断条件)

本文编程学习网主要和大家介绍用C语言判断素数的4个方法通过具体的代码向大家展示,希望对大家学习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()
{
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
以上就是“C语言判断素数的4个方法”的详细内容,想要了解更多C语言教程欢迎持续关注编程学习网!

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取