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

匿名网友 |浏览1169次
收藏|2019/02/11 21:10

满意回答

2019/02/11 21:39

抽空编了一下,通过调试编译,用10、100为例,结果正确。源程序如下,仅供参考:#include<stdio.h>#include<math.h>int main(){ int n_input; //输入的n int i_sqrt; int i,j; //循环变量 int is_prime; //素数判断变量 printf("Please INPUT a Positive Number: "); scanf("%d", &n_input); printf("Between 1 and %d, the Prime Numbers are:\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 break; //已经验证不是素数,后面的不用再验证,直接跳出循环 } j++; } if(is_prime == 1) //如果是素数,打印输出 printf("%d\t", i); //输出控制符使用转义字符'\t'(制表符),保持输出美观 i++; } return 0;}当n=10(4个素数)时,输出结果:当n=100时(25个素数),输出结果:

ccckz

其他回答(0)
0人关注该问题
+1

 加载中...