以下是解题《C++程序设计题解与上机指导》chapter 5.1的总结
用筛选法求1到100之间的素数的时候,程序如下: #include <iostream> #include <iomanip> using namespace std; #include <math.h> int main() {int i,j,n,a[101]; for (i=1;i<=100;i++) a[i]=i; a[1]=0;
//以下判定条件用“i<=sqrt(100)”而不用“i<100”,原因是如果这个数不是素数,那么他就肯定可以表示成两个数相乘的形式比如//39=3*13,这两个相乘的数肯定有一个是小于等于10的,所以用i<=sqrt(100)代替i<=100 for (i=2;i <= sqrt(100);i++) for (j=i+1;j<=100;j++) {if(a[i]!=0 && a[j]!=0) if (a[j]%a[i]==0) a[j]=0; } cout<<endl; for (i=1,n=0;i<=100;i++) {if (a[i]!=0) {cout<<setw(5)<<a[i]<<" "; n++;} if(n==10) {cout<<endl; n=0;} } cout<<endl; return 0; }