51Nod-1010 只包含因子2 3 5的数【打表+排序+二分搜索】_海岛Blog的博客-程序员宅基地

技术标签: 51Nod-1010  只包含因子2 3 5的数  # 51Nod题解  

基准时间限制:1  秒 空间限制:131072  KB 分值:  10   难度:2级算法题
 收藏
 关注
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)
第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


问题链接51Nod-1010 只包含因子2 3 5的数

问题分析:打表、排序和搜索问题。

程序说明:(略)

题记:能用库函数要尽量使用库函数。


参考链接:(略)


AC的C++程序如下:

#include <iostream>
#include <algorithm>
#include <stdio.h>

using namespace std;

const int TWO = 2;
const int THREE = 3;
const int FIVE = 5;

const long long MAXN = 1e18 + 100;
const int N = 1e6;
long long a[N];
int m;

void maketable()
{
    m = 0;
    for(long long i=1; i<MAXN; i*=TWO) {
        for(long long j=1; j*i<MAXN; j*=THREE){
            for(long long k=1; i*j*k<MAXN; k*=FIVE){
                a[m++] = i * j * k;
            }
        }
    }
}

int main()
{
    maketable();
    sort(a, a + m);

    int t;
    long long n;

    scanf("%d", &t);
    while(t--) {
        scanf("%lld", &n);
        printf("%lld\n", *lower_bound(a + 1, a + m, n));
    }

    return 0;
}


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tigerisland45/article/details/75634649

智能推荐

转载一篇ECS 构架_edison_maze的博客-程序员宅基地

浅谈《守望先锋》中的 ECS 构架今天读了一篇 《守望先锋》架构设计与网络同步 。这是根据 GDC 2017 上的演讲 Overwatch Gameplay Architecture and Netcode 视频翻译而来的,所以并没有原文。由于是个一小时的演讲,不可能讲得面面俱到,所以理解起来有些困难,我反复读了三遍,然后把英文视频找来(订阅 GDC Vault 可以看,有版权)看了一遍,大致理解...

Web安全测试之XSS(Cross Site Scripting) 跨站脚本攻击_ahui456321的博客-程序员宅基地

【转自:http://www.php1.cn/Content/Web_AnQuanCeShiZhi_XSS-CrossSiteScripting-_KuaZhanJiaoBenGongJi.html】XSS 全称(Cross Site Scripting) 跨站脚本攻击, 是Web程序中最常见的漏洞。指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚...

Postman安装与使用_weixin_30590285的博客-程序员宅基地

Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。官方网站:https://www.getpostman.com/安装:1、Postman最早是作用chrome浏览器插件存在的,所以,你可以到chrome商店搜索下载安...

Spring Boot启动源码分析【一万字】_刘Java的博客-程序员宅基地_springboot启动源码分析

基于Spring Boot 2.x,详细进行了Spring Boot项目的启动源码分析

Java SE 6 Update 23 正式发布_weixin_30879169的博客-程序员宅基地

Java SE 6 Update 23The full internal version number for this update release is 1.6.0_23-b05 (where "b" means "build"). The external version number is 6u23.HighlightsJava SE 6u23 contains en...

简易通讯录_dawanai5802的博客-程序员宅基地

&lt;?php error_reporting(0); ?&gt;&lt;!--***************************--&gt; &lt;html&gt;&lt;head&gt;&lt;title&gt;简易通讯录添加记录前台&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;script language="javascript"&...

随便推点

浪潮受邀出席“市长论坛-深圳智慧城市国际圆桌研讨会”_美通社的博客-程序员宅基地

#subheadlines div {font-size: 17px;} #dvContent table[name=logo_release]+p+div[id^=prni_] {clear:both;} ...

7月第1周 | Crust Network 项目周报_旷工说事的博客-程序员宅基地

01Crust 社区活动01Crust去中心化存储市场已于2月28日正式开放。截至6月28日,全网节点2642个,全网容量达到617PB。目前网络处于代币缺少状态。从5月5日起,Crust Maxwell预览网进行了减产,此后预览网日产出为1500CRU。预览网数据可参考6月第4周周报:02【数据创造价值】活动火热进行中,为了保证活动的公平公正,让更多人能体验到Crust分布式存储的同时获得奖励,Crust技术运营团队已对“数据算力”规则进行优化升级,并立即实施,以遏

Jenkins 踩坑(四)|基于接口自动化测试完成 Jenkins+GitHub+Allure 的结合_普通网友的博客-程序员宅基地

本文为霍格沃兹测试学院优秀学员 Jekins 学习踩坑笔记。测试开发技能进阶,文末加群。一、前提关于使用Jenkins创建job完成自动化测试,核心在于项目的拉取和执行,至于job的创建大同小异,需要了解的可以参考文章: [Jenkins之job创建、参数化与定时构建以及时区偏差填坑]另外还需要的就是执行机的环境(以GitHub拉取项目为例),需要具体细节操作可自行百度Google或参考文章: [Jenkins如何管理、配置、运行node节点,用slave进行分布式运行]* 需要配置`Jav.

3D开发基础知识和简单示例_问·道的博客-程序员宅基地

3D开发基础知识和简单示例 引言现在物联网概念这么火,如果监控的信息能够实时在手机的客服端中以3D形式展示给我们,那种体验大家可以发挥自己的想象。那生活中我们还有很多地方用到这些,如上图所示的Kinect 在医疗上的应用,当然还有体感游戏等等。3D 用...

python flask与django的区别_【Python基础】flask和django的对比区别是什么 - 收获啦_久微的博客-程序员宅基地

首先:Django 是一个重量级的框架,Flask是一个轻量型的框架;那么Django框架他到底重在哪呢?对比Flask框架,Django原生提供了众多的功能组件,让开发更简便快速。提供项目工程管理的自动化脚本工具数据库ORM支持(对象关系映射,英语:Object Relational Mapping)模板表单Admin管理站点文件管理认证权限session机制缓存Django是用python语言...

excel 二进制流js接收_jmp_triumph的博客-程序员宅基地

js代码import ElementUI from 'element-ui'import {requestDownload} from '@/api/request.js'/** 时间戳转换成日期* */export const timestampToTime = function (timestamp) { let date = new Date(timestamp) let Y = date.getFullYear() + '-' let M = (date.getMont

推荐文章

热门文章

相关标签