方法一: 简便列举法
#include<iostream>
#include<stdio.h> using namespace std; int main() { int i,j,k; printf("2 3 5 ");//我们知道2,3,5,是素数,之后同时满足%后!= 0即可 for(i=5;i<=100;i++) { if(i%2!=0&&i%3!=0&&i%5!=0) printf("%d ",i); } printf("\n"); return 0; } 方法二(设置标志变量flag)
#include<stdio.h>
#include<math.h>int main()
{ int ss=2; int i,flag;//flag标记素数 for(ss;ss<=100;ss++) { flag=1; for(i=2;i<=sqrt(ss);i++) { if(ss%i==0) { flag=0; break; } } if(flag) { printf("%d ",ss); } } return 0;}方法三 双重循环
#include<stdio.h>
#include<math.h>int main()
{ int i,ss=2; for(ss;ss<=100;ss++)//第一层for循环 { int k=sqrt(ss); for(i=2;i<=k;i++)//第二层for循环在判断某数n是否为素数时, //不需要从2一直除到n,只需要从2除到sqrt(n) { if(ss%i==0) { break; } } if(i>k) /*如果2号for循环结束时,if语句从来没执行, 那么i的值肯定大 于sqrt(number), 所以用这个表达式来判断是否为素数*/ printf("%d ",ss); }printf("\n"); return 0;}