(原創題) 友好素數對 (素數打表 預處理 二分)

2021-08-07 14:49:24 字數 1005 閱讀 9117

problem description

在連續自然數[l,r]中找出任意三個連續的素數a、b、c,如果a+b+c的和也為乙個素數,那麼我們就稱這樣的三個素數a、b、c為一組友好素數對。

注意:例如5,7,11就是三個連續的素數(即兩個素數之間沒有其他素數間隔,就可以說這兩個素數連續),並且它們的和為23,也是乙個素數。

input

第一行輸入乙個整數t,表示資料組數(1< t<10000);

第二行輸入兩個資料l,r(1<=l、r<=10^6);

output

每組資料輸出友好素數對的總組數。

sample input

2 5 11

1 100

sample output

1 15

考查思維和**實現了,需要一定的acm基礎。在校賽的時候,為了卡時間,需要很多資料,為此我也破費周折。

#include

#include

#include

using

namespace

std;

#define m 1000005

long

long d[1000010],s[1000010],cnt=0;

int is_prime(int x)

void init()

int find(int x)

return l;

}int main()

for(int i=0;i<100;i++)

cout

<": "

<" ";

cout

scanf("%d",&t);

while(t--)

if(is_prime(l)==0)

p++;

q--;

int ans=s[q]-s[p];

printf("%d\n",ans);

}return

0;}

美素數 素數打表

description 小明對數的研究比較熱愛,一談到數,腦子裡就湧現出好多數的問題,今天,小明想考考你對素數的認識。問題是這樣的 乙個十進位制數,如果是素數,而且它的各位數字和也是素數,則稱之為 美素數 如29,本身是素數,而且2 9 11也是素數,所以它是美素數。給定乙個區間,你能計算出這個區間...

python打反素數 反素數求解 反素數打表

問題描述 對於任何正整數x,起約數的個數記做g x 例如g 1 1,g 6 4.如果某個正整數x滿足 對於任意i 0 現在給乙個n,求出不超過n的最大的反素數.比如 輸入1000 輸出 840 思維過程 求 1.n 中約數在大的反素數 求約數最多的數 如果求約數的個數 756 2 2 3 3 7 1...

高效素數打表

大家所知的素數打表時間複雜度幾乎都是n2。就是這種 void init prime j 0 for i 2 i 1000002 i if prime i prime j i 在網上搜到了另一種方法,效率提高了不少。巧妙之處還在研究中,等理解差不多就仔細分析一下。下面是 大家可以發表一下自己的看法,交...