C趣味程序百例(09)要發就發

C趣味程序百例(09)要發就發,第1張

C趣味程序百例(09)要發就發,第2張

32.想發就發
“1898——想發就發”。請將截至1993年的所有質數排列在第一行,第二行的每個質數等於其右肩的質數之差。編程查一下:第二行有沒有這樣的連續整數,它們的和正好是1898?如果存在虛假的存在,這樣的情況有多少?
第一行:2 3 5 7 11 13 17......1979年1987年1993年第二行......8 6
*問題分析及算法設計:
首先從數學上分析問題:[/br其中m[j]爲:
m[j]=n[j 1]-n[j]。
那麽第二行連續N個數之和爲:
sum = m [1] m [2] m ... m [j]
= (n [2]-n [1]) (n [3]。如果存在,第二行一定有需要的整數序列,它的和正好是1898。
解決等價問題比較簡單。
根據分析,素數序列中不一定要包含2,因爲任何一個素數和2的差一定是奇數,所以不需要考慮。
*程序和程序注釋:
# include
# include
# define num 320
int num[num];
int fflag(int I);
void main()
{
int I,j,count = 0;
printf("第一行有以下素數序列:\ n");
for(j=0,I = 3;i if(fflag(i))數[j ]= I;
for(j-;編號[j]>1898;J-)
{
中搜索1898 for(I = 0;數字[j]-數字[I]> 1898;i );
If(number[j]-number[I]= = 1898)
printf ("(%d)。=, ...,% d.
}
}

[3]

位律師廻複

生活常識_百科知識_各類知識大全»C趣味程序百例(09)要發就發

0條評論

    發表評論

    提供最優質的資源集郃

    立即查看了解詳情