時間限制: 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樣例輸出 copy1 14 6
40我們可以估算出最大的 n,當 a=1,b=10000 的時候,打表出來我們發現只會到達 2*1e6,所以我們可以從 1-2*1e6 開始判斷,判斷到新的滿足要求的 n 就更新,但是 我們每次單獨判斷乙個數是不是素數很費時間,會超時,所以我們用素篩打乙個表節 約時間,然後判斷乙個數是不是回文也是根據那個數的位數來的,所以不必擔心,然 後就是直接暴力判斷16
1 #include2 #include3 #include4 #include5view codeusing
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 }
吉首 超超的自閉意思 素篩 暴力
時間限制 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...