输入一个整数N,输出1-N之间的所有的素数  c++  用while语句  急急急

时间:2019.02.11 发布人:

输入一个整数N,输出1-N之间的所有的素数  c++  用while语句  急急急

已解决问题

谷歌用户在2019.02.11提交了关于“奥尼尔输入一个整数N,输出1-N之间的所有的素数  c++  用while语句  急急急”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-26T14:04:50。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,你就是当代的活雷锋,太感谢了 !

希望以下的回答,能够帮助你。

第1个回答

用户名:ccckz  

抽空编了一下,通过调试编译,用10、100为例,结果正确。

源程序如下,仅供参考:


#include<stdio.h>

#include<math.h>

intmain()

{

intn_input;//输入的n

inti_sqrt;

inti,j;//循环变量

intis_prime;//素数判断变量

printf("PleaseINPUTaPositiveNumber:");

scanf("%d",&n_input);


printf("Between1and%d,thePrimeNumbersare:\n",n_input);


i=2;//最小素数为2,从2开始循环

while(i<=n_input)//从2到n循环验

{

j=2;

i_sqrt=(int)sqrt((double)i);//判断是否素数,从2到√i(根号i)即可,不用到n

is_prime=1;//是否素数赋初值


while(j<=i_sqrt)//从2到√i循环,判断i是否能被j整除

{

if(i%j==0)//i能能被j整除,不是素数

{

is_prime=0;//不是素数,素数判断变量置0

bre**;//已经验不是素数,后面的不用再验,直接跳出循环

}

j++;

}


if(is_prime==1)//如果是素数,打印输出

printf("%d\t",i);//输出控制符使用转义字符'\t'(制表符),保持输出美观

i++;

}

return0;

}


当n=10(4个素数)时,输出结果:


当n=100时(25个素数),输出结果: