c语言学习:[1]判断一个数是否为素数

2025-12-21 18:16:11

用c语言判断一个数是否为素数的几种方法。所用编程环境Microsoft Visual C++。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为素数,也叫质数。

c语言学习:[1]判断一个数是否为素数

工具/原料

Microsoft Visual C++ 6.0

While语句

#include<stdio.h>

void main()

{

int i,n;

printf("请输入n:");

scanf("%d",&n);

i=2;

while(i<n)

{

if(n%i==0)

break;

i++;

}

if(i==n)

printf("%d is prime\n",n);

else

printf("%d is no prime\n",n);

}

输出结果如下图:

c语言学习:[1]判断一个数是否为素数

比较容易理解的思路

#include<stdio.h>

void main() 

{

int n,r,i; 

scanf("%d",&n); 

for(i=2;i<=n-1;i++) 

{

r=n%i; 

if(r==0) break;

}

if(i>=n) 

printf("yes\n"); 

else 

printf("no\n"); 

}

输出结果如下图:

c语言学习:[1]判断一个数是否为素数

初等数论法的思路

初等数论,一个整数不能整除他的平方数之内的整数就是素数。

编程代码

#include <stdio.h>

#include <math.h>

#define YES 1

#define NO 0

int IsPrime(int N)

{

int i, j;  

if (N == 2)

          return YES;

      else

          if (N < 2 || N % 2 ==0)

              return NO;

      else

      {

          j = (int)sqrt(N + 1);

          for (i = 3; i <= j; i = i + 2)

              if (N % i == 0)

                  return NO;

      }

      return YES;

}

void main()

{

      int N;

      printf("Please input a number: ");

      scanf("%d", &N);

      if (IsPrime(N) == YES)

          printf("%d is a prime number\n", N);

      else

          printf("%d is not a prime number\n", N);

}

输出结果如下图:

c语言学习:[1]判断一个数是否为素数

(共篇)下一篇:
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢