~cpp #include <iostream.h> #include <math.h> #include <time.h> int main() { int tmp_arr[10000]={2,0}; int cur_arr_index = 1; int i,j; bool flag; clock_t t = clock(); for(i=3; i<50000; i++) { flag = true; for(j=0; tmp_arr[j]<=sqrt(i); j++) //for(j=0; j<cur_arr_index; j++) { if(i%tmp_arr[j]==0) { flag=false; break; } else continue; } if(flag) tmp_arr[cur_arr_index++]=i; } /*double ti = clock()-t; double clk = CLOCKS_PER_SEC; cout << ti/clk << endl;*/ /*for(i=0; i<cur_arr_index; i++) cout << tmp_arr[i] << ' ';*/ double ti = clock()-t; double clk = CLOCKS_PER_SEC; cout << ti/clk << endl; return 0; }
~cpp for(j=0; tmp_arr[j]<sqrt(i); j++)
이 부분을
이렇게 수정했더니 되는군요. 등호하나때문에 결과가 엄청나게 달라지는군요. 지적해 주셔서 감사 - 임인택 (radiohead4us)
~cpp for(j=0; tmp_arr[j]<=sqrt(i); j++)