c语言编程,输出10~100之间的全部素数

c语言编程,输出10~100之间的全部素数,第1张

1、首先打开visual C++ 60-文件-新建-文件-C++ Source File。

2、输入预处理命令和主函数

#include<stdioh>       /函数头:输入输出头文件/

void main()             /空类型:主函数/

3、定义变量并使用双重循环:

  int a,b,c=0;                  /定义变量的数据类型为整型并为c赋值/

for(a=10;a<=100;a++) /用循环使a的值增加/

{

for(b=2;b<a;b++)          /用循环使a分别除以2到它本身的数/

4、判断是否是素数:      

 if(a%b==0)            /判断a是否是素数/

         break;            /否,跳出内循环/

  else

         if(b==a-1)        /是,判断a是否不能被2到它本身减1整除/

               c=1;          /是,给c赋1/

5、是素数的话输出素数:

      if(c==1)                  /判断c是否等于1/

{

printf("%d\n",a);     /是,输出素数并给c赋0/

c=0;

}

6、然后就完成了。

用常规的判素性方法可如下实现

#include "stdioh"

#include "mathh"

bool IsPrime(int x)

{

int i, s;

s = sqrt(x + 1);

for(i = 2; i <= s; i++)

if(x % i == 0) return false;

return true;

}

void main( )

{

int i;

for(i = 2; i < 100; i++)

if(IsPrime(i))

printf("%d ", i);

}

也可采用筛选法,筛选法效率会高一些,楼上的虽然也是筛选法,但他的效率却并不高。筛选法的思路是将那些非素数筛掉,留下那些素数。命题“对于1<x<100的合数x, 必含有小于10的质因子”可以证明是真命题,它的逆反命题“对于1<x<100的数,如果不含有小于10的质因子,则它必为素数。”则也是真命题。因此筛除时,只要筛除含有10以内的质因子的数就可以了。下面给出筛选法的代码。

#include "stdioh"

void main( )

{

bool isprime[100];

int i, j;

isprime[0] = false;

isprime[1] = false;

for(i = 2; i < 100; i++) /先初始化2~100的都是素数,然后将非素数筛除掉/

isprime[i] = true;

for(i = 2; i < 10; i++) /将所有含有小于10的质因子的数筛除掉/

{

if(isprime[i]) /如果i是素数,则将它的倍数全部筛掉/

for(j = i i; j < 100; j += i) /从ii开始检测是因为小于ii的合数都被小于i的素数筛除了/

isprime[j] = false;

}

for(i = 2; i < 100; i++)

if(isprime[i])

printf("%d ", i);

}

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

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

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

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

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

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

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

以上就是关于c语言编程,输出10~100之间的全部素数全部的内容,包括:c语言编程,输出10~100之间的全部素数、用c语言编写程序输出1-100内的素数、用C语言如何判断素数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9484927.html

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

发表评论

登录后才能评论

评论列表(0条)

保存