void
main()
{
FILE *fp_out1 =
fopen("D:\\data4.txt","w+"); //建立檔案路徑
FILE *fp_out2 =
fopen("D:\\data5.txt","w+");
FILE *fp_out3 =
fopen("D:\\data6.txt","w+");
int x,y,z,count1,count2,flag,N; //定義變數
int n1[1229],n2[10000]; //定義矩陣
count1=0; //初始化
count2=0;
//0到
104 質數
N=10000;
for(int i=2;i<N;i++)
{
flag=1; //設旗標為1
for(int j=2;j<i;j++)
{
if (i%j==0) //若餘數為0
{
flag=0; //令旗標為0
break;
}
flag=flag*1;
}
if(flag==1)
{
count1++;
fprintf(fp_out1,"%d\t%d\n",i,count1); //將結果寫到記事本
fprintf(fp_out2,"%d\n",i);
}
}
readData("D:\\data5.txt",n1,
count1); //將0到10000之間的質數存成矩陣
//104到108質數
for(int i=10000;i<100000;i++)
{
flag=1;
for(int j=0;j<count1;j++)
{
if (i%n1[j]==0) //將1萬到1億每一個數除以矩陣內的每一數
{
flag=0;
break;
}
flag=flag*1;
}
if(flag==1)
{
count2++;
fprintf(fp_out3,"%d\t%d\n",i,count2);
}
}
system("pause");
}結果 :
0到104的質數個數(以千為單位)
千為單位
|
質數個數
|
最大質數
|
0~1
|
168
|
997
|
1~2
|
135
|
1999
|
2~3
|
127
|
2999
|
3~4
|
120
|
3989
|
4~5
|
119
|
4999
|
5~6
|
114
|
5987
|
6~7
|
117
|
6997
|
7~8
|
107
|
7993
|
8~9
|
110
|
8999
|
9~10
|
112
|
9973
|
總計
|
質數個數
|
最大質數
|
0~10000
|
1229
|
9973
|
0到105的質數個數(以萬為單位)
萬為單位
|
質數個數
|
最大質數
|
0~1
|
1229
|
9973
|
1~2
|
1033
|
19997
|
2~3
|
983
|
29989
|
3~4
|
958
|
39989
|
4~5
|
930
|
49999
|
5~6
|
924
|
59999
|
6~7
|
878
|
69997
|
7~8
|
902
|
79999
|
8~9
|
876
|
89989
|
9~10
|
879
|
99991
|
總計
|
質數個數
|
最大質數
|
0~100000
|
9592
|
99991
|
0到106的質數個數(以十萬為單位)
十萬為單位
|
質數個數
|
最大質數
|
0~1
|
9592
|
99991
|
1~2
|
8392
|
199999
|
2~3
|
8013
|
299993
|
3~4
|
7863
|
399989
|
4~5
|
7678
|
499979
|
5~6
|
7560
|
599999
|
6~7
|
7445
|
699967
|
7~8
|
7408
|
799999
|
8~9
|
7323
|
899981
|
9~10
|
7224
|
999983
|
總計
|
質數個數
|
最大質數
|
0~1000000
|
78498
|
999983
|
0到107的質數個數(以佰萬為單位)
佰萬為單位
|
質數個數
|
最大質數
|
0~1
|
78498
|
999983
|
1~2
|
70435
|
1999993
|
2~3
|
67883
|
2999999
|
3~4
|
66330
|
3999971
|
4~5
|
65367
|
4999999
|
5~6
|
64336
|
5999993
|
6~7
|
63799
|
6999997
|
7~8
|
63129
|
7999993
|
8~9
|
62712
|
8999993
|
9~10
|
62110
|
9999991
|
總計
|
質數個數
|
最大質數
|
0~10000000
|
664599
|
9999991
|
沒有留言:
張貼留言