2017第八屆藍橋杯C/C++ B組省賽-等差素數列


標題:等差素數列

2,3,5,7,11,13,....是素數序列。
類似:7,37,67,97,127,157 這樣完全由素數組成的等差數列,叫等差素數數列。
上邊的數列公差為30,長度為6。

2004年,格林與華人陶哲軒合作證明了:存在任意長度的素數等差數列。
這是數論領域一項驚人的成果!

有這一理論為基礎,請你借助手中的計算機,滿懷信心地搜索:

長度為10的等差素數列,其公差最小值是多少?

注意:需要提交的是一個整數,不要填寫任何多余的內容和說明文字。


比賽的時候有點混亂,結果連暴力都沒暴力出來,后來比賽一結束,就看了一遍就想到了怎么寫,,心態決定命運啊_(°:з」∠)_


純暴力打出素數表,然后挨個遍歷知道找到合適的就好

 1 #include<stdio.h>
 2 int su[20000]={0};
 3 int shai[20000]={1,1,0};
 4 void p()
 5 {
 6     int k=0;
 7     for(int i=0;i<10000;i++)
 8     {
 9         if(shai[i])
10         {
11             continue;
12         }
13         for(int j=i;j*i<10000;j++)
14         {
15             shai[i*j]=1;
16         }
17         su[k++]=i;
18     }
19 }
20 int suu()
21 {
22     int i,j,k;
23     for(i=0;i<10000;i++)
24     {
25         int kk=su[i];
26         for(k=1;k<1000;k++)
27         {
28          
29             for(j=1;j<10;j++)
30             {
31                 if(shai[kk+j*k])
32                 {
33                     break;
34                 }
35             }
36              if(j>=10)
37              {
38                  return k;
39              } 
40         }
41     }
42 }
43 int main()
44 {
45     p();
46     int a=suu();
47     printf("%d\n",a);
48     return 0;
49 }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM