我寫了這段代碼來顯示1到100之間的素數。唯一的條件是不要使用函數,整個代碼應該是內聯的。我會問是否可以改進(優化)更多?優化素數代碼?
#include<iostream>
using namespace std;
int main() {
int i=2,j=2;
cout<<"Prime numbers between 1 and 100 are:"<<endl;
cout<<"2"<<"\t";
while(i!=100) {
for(int j=2;j<i;j++) {
if(i%j==0)
break;
if(j==i-1)
cout<<i<<"\t";
}
i++;
}
cout<<endl;
system("pause");
return 0;
}
「的唯一條件是不使用的功能,整個代碼應該是內聯」。爲什麼不編寫函數,然後打開編譯器優化,讓它們爲你內聯?兩全其美。 – GManNickG
你只需要檢查,直到'j <= sqrt(i)'。 –
通常情況下:使用分析器來確定代碼中哪部分使用得最多,運行速度最慢。如果你已經儘可能優化了,算法需要改變。引入併發(如果可能且有意義),並使用更好的算法(如果存在)。 – GManNickG