求"求素数的C语言程序"

求"求素数的C语言程序",第1张

#include <stdio.h>

int main()

{

  int a=0

  int num=0

int i

  printf("输入一个整数:")

  scanf("%d",&num)

  for(i=2i<numi++){

      if(num%i==0){

          a++

      }

  }

  if(a==0){

      printf("%d是素数。\n", num)

  }else{

      printf("%d不是素数。\n", num)

  }

  return 0

}

扩展资料:

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。

基本算法:若 k%m==0 则说明 k 不是素数。

判断整数n是否为素数——采用枚举法求解。

采用枚举算法解题的基本思路:

(1)确定枚举对象、枚举范围和判定条件;

(2)枚举可能的解,验证是否是问题的解。

枚举算法的一般结构:while循环。

参考资料来源:百度百科-枚举法

按照如下步骤即可用C语言判断素数:

1、首先打开visual C++ 6.0,然后点击左上角的文件,再点击新建。

2、然后在d出的新建对话框中点击C++Source File。

3、在新建的文件文本框中输入预处理命令和主函数,即函数头和空类型。

4、然后再定义变量并输入一个数字,即定义变量的数据类型,输出文字提示,再输入一个数字。

5、然后用for函数和if函数判断是否是素数。

6、点击确定后即可成功创建刚刚新建的程序,随机输入一个数字即可验证一下刚刚创建的C语言。

第一种方法就是用1到100之间的每个数字,除以2到其本身前面的那一个数字,如果此过程中出现整除的现象,则该数不是素数。如果没有整除的现象,则该数为素数输出。代码如下#include<stdio.h>

int main()

{

int i = 0

int count = 0

for (i = 1i <= 100i++)

{

int j = 0

for (j = 2j <= ij++)

{

if (i%j == 0)

{

break

}

}

if (i == j)

{

count++

printf("%d ", i)

}

}

printf("\ncount=%d\n", count)

return 0

}

第二种方法使用了SQRT函数,也就是平方根,这里的平方根是整数。众所周知,非素数可以写成除了1和它本身相乘的a*b方式,而a、b之间必有一个小于等于ab之积的开平方根;如果这个非素数能够被a整除,则相应的肯定会被b整除。这种方法用1到100之间的数字除以2到它的开平方根(如果该数的平方根是整数则可以除到),在此之间如果出现整除现象,则该数不是素数;如果没有出现整除现象,则该数是素数。显而易见,这种方法比第一种方法要简便,运行的次数少#include<stdio.h>

#include<math.h>

int main()

{

int i=0

int count=0

for(i=1i<=100i++)

{

int j=0

for(j=2j<=sqrt(i)j++)

{

if(i%j==0)

{

break

}

}

if(j>sqrt(i))

{

count++

printf("%d ",i)

}

}

printf("\ncount=%d\n",count)

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11357907.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存