筛选法求素数

    技术2022-05-18  15

     以下是解题《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;   }


    最新回复(0)