c++中求100以內最大的10個素數
阿新 • • 發佈:2019-01-10
c++中求100以內最大的10個素數,
並將這10個最大的素數按4個一行輸出,
然後對這10個素數求和
思路:判斷一個數m是否為素數,需要讓2~m-1的所有數來除以m,
但是m的因子是成對出現的,所以只需用2~m的平方根來除以m即可,這樣可以提高計算速度,優化程式碼
#include "stdafx.h" #include<iostream> #include<cmath> using namespace std; #include<iomanip> int _tmain(int argc, _TCHAR* argv[]) { int m,i,k,cont=0,sum=0; for(m=100;m>0;m--){ int flag=1;//定義了一個標誌變數,也可以用if(i>=k)來進行條件判斷 k=sqrt((float)m); for(i=2;i<=k;i++) if(m%i==0) {flag=0;break;} if(flag) { cout<<setw(2)<<m<<" "; cont++; sum+=m; if(cont%4==0) cout<<endl; if(cont==10) { cout<<"sum="<<sum<<" ";break; } } } cout<<endl; return 0; }