k的因子中只包含2 3 5。滿足條件的前10個數是:2,3,4,5,6,8,9,10,12,15。
所有這樣的k組成了乙個序列s,現在給出乙個數n,求s中 >= 給定數的最小的數。
例如:n = 13,s中 >= 13的最小的數是15,所以輸出15。
input
第1行:乙個數t,表示後面用作輸入測試的數的數量。(1 <= t <= 10000)output第2 - t + 1行:每行1個數n(1 <= n <= 10^18)
共t行,每行1個數,輸出》= n的最小的只包含因子2 3 5的數。input示例
518output示例1335
77
28153680
其實一開始我是有想過打表再二分的,但是因為紫書中的乙個例題(醜數),我居然想用單調佇列來記錄資料,太年輕了,還想過用篩法,*****
//菜呀,菜呀,菜呀
#include using namespace std;
typedef long long ll;
const ll maxn=1e18+100;
ll a[1000000];
ll len;
void pre()
{ len=0;
for(ll i=1;i>t;
while(t--){
ll n;
cin>>n;
cout<<*lower_bound(a+1,a+len,n)<
51Nod 1010 只包含因子2 3 5的數
k的因子中只包含2 3 5。滿足條件的前10個數是 2,3,4,5,6,8,9,10,12,15。所有這樣的k組成了乙個序列s,現在給出乙個數n,求s中 給定數的最小的數。例如 n 13,s中 13的最小的數是15,所以輸出15。input 第1行 乙個數t,表示後面用作輸入測試的數的數量。1 t ...
51nod1010 只包含因子2 3 5的數
題目 k的因子中只包含2 3 5。滿足條件的前10個數是 2,3,4,5,6,8,9,10,12,15。所有這樣的k組成了乙個序列s,現在給出乙個數n,求s中 給定數的最小的數。例如 n 13,s中 13的最小的數是15,所以輸出15。收起輸入 第1行 乙個數t,表示後面用作輸入測試的數的數量。1 ...
51nod 1010 只包含因子2 3 5的數
k的因子中只包含2 3 5。滿足條件的前10個數是 2,3,4,5,6,8,9,10,12,15。所有這樣的k組成了乙個序列s,現在給出乙個數n,求s中 給定數的最小的數。例如 n 13,s中 13的最小的數是15,所以輸出15。輸入 第1行 乙個數t,表示後面用作輸入測試的數的數量。1 t 100...