日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 51NOD 1010 只包含因子2 3 5的數(二分 + 預處理)

51NOD 1010 只包含因子2 3 5的數(二分 + 預處理)

來源:程序員人生   發布時間:2016-06-20 08:12:39 閱讀次數:2555次

傳送門

K的因子中只包括2 3 5。滿足條件的前10個數是:2,3,4,5,6,8,9,10,12,15。
所有這樣的K組成了1個序列S,現在給出1個數n,求S中 >= 給定數的最小的數。
例如:n = 13,S中 >= 13的最小的數是15,所以輸出15。
Input
第1行:1個數T,表示后面用作輸入測試的數的數量。(1 <= T <= 10000)
第2 - T + 1行:每行1個數N(1 <= N <= 10^18)
Output
共T行,每行1個數,輸出>= n的最小的只包括因子2 3 5的數。
Input示例
5
1
8
13
35
77
Output示例
2
8
15
36
80
解題思路:
就是首先將所有的只含有2 3 5因子的數打1個表保存在1個數組里,然后2分查找第1個>=數組里的數,輸出就好了。
上代碼:

#include <iostream> #include <cstring> #include <cstdio> #include <cstdlib> #include <cmath> #include <algorithm> using namespace std; typedef long long LL; const LL INF = 1e18+100;///不能太小了 const int MAXN = 70*70*70; LL a[MAXN]; int cnt = 0; void Init() { cnt = 0; for(LL i=1; i<INF; i*=2)///(注意i,j,k是LL的) for(LL j=1; j*i<INF; j*=3) for(LL k=1; i*j*k<INF; k*=5) a[cnt++] = i*j*k; } int main() { Init(); sort(a, a+cnt); int T; cin>>T; while(T--) { LL n; scanf("%lld",&n); printf("%lld\n",a[lower_bound(a+1,a+cnt+1,n)-a]); } return 0; }

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 精品国产31久久久久久 | 欧美久久久久久久 | 日韩在线视频播放 | 久久久久久久久久影视 | 亚洲 欧美变态 另类 综合 | a天堂视频| 国产精品久久久久久久久久久久久久 | 欧美日韩国产精品 | 亚洲视频精品在线 | 一区二区三区精品视频 | 黄色短视频在线观看 | 国产区视频 | www视频在线观看 | 亚洲天堂五月 | jizz日18 | 天天舔天天干天天操 | 视频在线一区二区三区 | 国产全黄a一级毛片91 | 日韩成人免费视频 | 国产三级一区 | 黄色裸体网站 | 蜜桃视频一区二区三区 | 国产精品1区2区 | 成人h视频在线观看 | 99只有精品 | 99久久综合国产精品二区国产 | 久久久久久国产精品免费 | 亚洲精品三级 | 91精品国产高清久久久久久久久 | 青草福利 | 国产精品电影一区二区 | 日本高清久久 | 欧美极品少妇xxxxⅹ免费视频 | 高清国产一区 | 在线中文 | 成人午夜免费视频 | 欧美精品久久一区二区三区 | 综合五月| 最近免费中文在线大全高清2019 | 在线国产一区 | 亚洲综合大片69999 |