問題 F 超超的自閉意思

2022-03-04 23:26:34 字數 1884 閱讀 3527

時間限制: 1 sec  記憶體限制: 128 mb

提交: 80  解決: 10

[提交] [狀態] [命題人:jsu_admin]

題目描述

質數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。

回文數定義為在正整數中,從左到右,從右到左讀都相同的數字。(沒有前導零的十進位制)

現在 z(n) 表示不大於n的質數個數,h(n)表示不大於n的回文數個數。

給定兩個數b, a。求最大n,滿足b * z(n) ≤ a * h(n)。

輸入第一行包含乙個整數t,表示有t組資料, t <= 10

每組資料報含兩個整數b, a, 如題所述。

b,a < 10^4 , 1 / 42 <=b /a <= 42

輸出如果存在這樣的n,則列印出來。如果不存在這樣的n ,輸出 「no」

樣例輸入 copy

2

1 14 6

樣例輸出 copy

40

16

我們可以估算出最大的 n,當 a=1,b=10000 的時候,打表出來我們發現只會到達 2*1e6,所以我們可以從 1-2*1e6 開始判斷,判斷到新的滿足要求的 n 就更新,但是 我們每次單獨判斷乙個數是不是素數很費時間,會超時,所以我們用素篩打乙個表節 約時間,然後判斷乙個數是不是回文也是根據那個數的位數來的,所以不必擔心,然 後就是直接暴力判斷

1 #include2 #include3 #include4 #include5

using

namespace

std;

6int cnt = 0;7

const

int maxn = 5010;8

int prime[maxn];//

第i個素數

9bool is_pri[maxn+10];//

is_pri[i]表示i是素數

10//

返回n以內素數的個數

11int sieve(int

n)20}21

return

p;22}23

//回文數

24int palindrome(int a,int

x)25

33while(x>0

);34

return

a;35}36

37int huiwen(int

n)38

50//

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

51//}52

return

c;53}54

55bool isprime(int

num)

5666}67

return

true;68

}69bool ishuiwen(int

x)70

while(x>0

);81

if(n==newed)

82return

true;83

else

84return

false;85

//}86}

87int dp[3000020

];88

int dp2[3000020

];89

90void

dabiao()99}

100int

main()

101119

if(sum)

120 printf("

%d\n

",sum);

121else

122 printf("no"

);123

}124 }

view code

吉首 超超的自閉意思 素篩 暴力

時間限制 1 sec 記憶體限制 128 mb 質數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。回文數定義為在正整數中,從左到右,從右到左讀都相同的數字。沒有前導零的十進位制 現在 z n 表示不大於n的質數個數,h n 表示不大於n的回文數個數。給定兩個數b,a。求最大n,滿足b ...

mysql 超賣 mysql 解決超賣問題的鎖分析

解決超賣問題,常見的方式,利用redis 的原子性去遞減 利用佇列,隊列入隊計數。或者直接打到mysql 層。由mysql 保證不超賣,有幾個玩法。利用屬性不一樣,挺有意思,記錄下。首先,mysql 隔離級別是rr,或者是序列,但是不可能用序列,太慢。其次,為什麼會出現超賣問題?因為這個select...

秒殺超賣問題

秒殺問題其實就是併發讀寫的問題,需要解決超賣,效率等問題。可以使用redis將秒殺的資料進行快取,通過啟用定時任務,當redis中的庫存為0時將,快取持久化到資料庫中,並且將redis中的快取清除掉。service slf4j public class orderserviceimpl extend...