これを利用してINT_MAXとUINT_MAXを求めたいのですが実行出来ません。
なぜ実行できないのでしょうか
また、どうすればうまく実行させれますか?
よろしくお願いします。
#include <stdio.h>
#include<math.h>
#include<time.h>
#include<limits.h>
void main(int argc, char *argv[])
{
unsigned int i, j, n, sqrtn; //nまでの素数を求める
unsigned int sqrtn; //√nまでの素数をふるいにかける
char *flags; //フラグを格納する配列
int np = 0; //素数の個数
time_t t1, t2, t3; //タイマー
flags=(char *)malloc(n = atoi(argv[1]) + 1000);
t1 = clock();
flags[0] = flags[1] =1;
flags[2] = 0;
flags[3] = 0;
for(i=4; i<=n; i+=2){
flags[i] = 1;
flags[i+1] = 0;
}
sqrtn = (int)sqrt((double)n);
for(i=3; i<= sqrtn; i+=2){
if(flags[i] == 0){
for(j=i*i; j<=n; j+=2*i){
flags[j] = 1;
}
}
}
t2 = clock();
for(i=0; i<=n; i++)
if(flags[i] == 0){
np++;
printf(" %d", i);
}
printf("\n%uまでに%d個の素数が見つかりました\n", n, np);
t3 = clock();
printf("計算時間: %10.3fsec\n", (t2-t1)/1000.0);
printf("出力時間: %10.3fsec\n", (t3-t2)/1000.0);
printf("合計時間: %10.3fsec\n", (t3-t1)/1000.0);
return ;
}