质数:只能被本身和1除尽的整数。 算法依据:若某个数不是质数,则必定可以被目前已经找到的质数之一除尽。 #include "stdafx.h" #include<iostream> #include<iomanip> using std::setw; using std::cout; using std::endl; int _tmain(int argc, _TCHAR* argv[]) { //定义要输入质数的个数 const int MAX=100; //定义最小的三个质数 long primes[MAX]={2,3,5}; long trial=5; //用了表示已发现的质数的个数 int count=3; //用来标记一个数是否为质数 int found=0; do { trial += 2; found=0; //逐个除以已发现的质数,若能除尽,则不为质数 for(int i=0;i<count;i++) { found=(trial%*(primes+i))==0; if(found) break; } if(found==0) *(primes + count++)=trial; }while(count<MAX); //输出发现的质数 for(int i=0;i<MAX;i++) { if(i%5==0) cout<<endl; cout<<setw(10)<<*(primes + i); } cout<<endl; return 0; }