C primer 第七章分支和跳转 习题7.9
输入一个正整数 显示所有小于它的素数
#include <stdio.h> int main(void) { printf("Enter an integer:\n"); int enter,num,i; while (scanf("%d",&enter)==1) { for (i=2;i<=enter;i++) { int flag=1; for (num=2;num*num<=i;num++) { if (i%num==0) flag=0; } if (flag) printf("%d\n",i); } printf("Enter another integer:\n"); } return 0; }
PS:1.此程序必须加入flag标签,用以检查输入的数字是否进入循环(如果不加 则数字2 3 将无法进入循环 从而被遗漏)
2.加入标签后,以前的代码是在内侧循环中 如果1%num!=0 就输出为质数,但是产生的问题是无法将2 3输出,有了flag后,应该充分利用flag,在内循环外输出(就可以包含2 3 及其他5以上的质数)。