More actions
imported>Unknown No edit summary |
(Repair batch-0006 pages from live compare) |
||
| Line 5: | Line 5: | ||
int main() | int main() | ||
{ | { | ||
int tmp_arr | int tmp_arr[10000]={2,0}; | ||
int cur_arr_index = 1; | int cur_arr_index = 1; | ||
int i,j; | int i,j; | ||
| Line 15: | Line 15: | ||
for(i=3; i<50000; i++) { | for(i=3; i<50000; i++) { | ||
flag = true; | flag = true; | ||
for(j=0; tmp_arr | for(j=0; tmp_arr[j]<=sqrt(i); j++) | ||
//for(j=0; j<cur_arr_index; j++) | //for(j=0; j<cur_arr_index; j++) | ||
{ | { | ||
if(i%tmp_arr | if(i%tmp_arr[j]==0) { | ||
flag=false; | flag=false; | ||
break; | break; | ||
| Line 24: | Line 24: | ||
else continue; | else continue; | ||
} | } | ||
if(flag) tmp_arr | if(flag) tmp_arr[cur_arr_index++]=i; | ||
} | } | ||
| Line 32: | Line 32: | ||
/*for(i=0; i<cur_arr_index; i++) | /*for(i=0; i<cur_arr_index; i++) | ||
cout << tmp_arr | cout << tmp_arr[i] << ' ';*/ | ||
| Line 44: | Line 44: | ||
''DeleteMe 50000까지의 소수는 총 5133개입니다. 위 코드는 더 많은 숫자를 출력합니다. sqrt부분을 잘 생각해 보세요.'' | ''DeleteMe 50000까지의 소수는 총 5133개입니다. 위 코드는 더 많은 숫자를 출력합니다. sqrt부분을 잘 생각해 보세요.'' | ||
for(j=0; tmp_arr | for(j=0; tmp_arr[j]<sqrt(i); j++) | ||
이 부분을 | 이 부분을 | ||
for(j=0; tmp_arr | for(j=0; tmp_arr[j]<=sqrt(i); j++) | ||
이렇게 수정했더니 되는군요. 등호하나때문에 결과가 엄청나게 달라지는군요. 지적해 주셔서 감사 - 임인택 ( | 이렇게 수정했더니 되는군요. 등호하나때문에 결과가 엄청나게 달라지는군요. 지적해 주셔서 감사 - 임인택 (radiohead4us) | ||
---- | ---- | ||
[[소수구하기]] | [[소수구하기]] | ||
Latest revision as of 01:08, 27 March 2026
#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;
}
DeleteMe 50000까지의 소수는 총 5133개입니다. 위 코드는 더 많은 숫자를 출력합니다. sqrt부분을 잘 생각해 보세요.
for(j=0; tmp_arr[j]<sqrt(i); j++)
이 부분을
for(j=0; tmp_arr[j]<=sqrt(i); j++)
이렇게 수정했더니 되는군요. 등호하나때문에 결과가 엄청나게 달라지는군요. 지적해 주셔서 감사 - 임인택 (radiohead4us)