zoukankan      html  css  js  c++  java
  • 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 <= 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

    AC code:

    #include <iostream>
    #include<algorithm>
    using namespace std;
    #define maxx 1e18+1005
    __int64 a[110000];
     
    void init(__int64 &num)
    {
        num=1;
        for(__int64 i=1; i<maxx; i*=2)
            for(__int64 j=1; i*j<maxx; j*=3)
                for(__int64 k=1; i*j*k<maxx; k*=5)
                    a[num++]=i*j*k;
        sort(a+1,a+num);
    }
     
    __int64 findd(__int64 k,__int64 n)
    {
        if(k<=2)return 2;
        __int64 left=1,right=n-1,mid;
        while(left<right)
        {
            mid=(left+right)/2;
            if(a[mid]>=k)right=mid;
            else left=mid+1;
        }
        return a[right];
    }
     
    int main()
    {
        __int64 n,m;
        init(m);
        cin>>n;
        while(n--)
        {
            __int64 k;
            cin>>k;
            cout<<findd(k,m)<<endl;
        }
        return 0;
    }
    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    Spring 理解和开始
    SpringBoot之日期时间格式化
    Java 中 DO、PO、BO、DTO、VO 等各对象概念说明
    RocketMQ之Broker
    RocketMQ之NameSever
    RocketMQ之Consumer
    RocketMQ之Producer
    RocketMQ之简单使用
    RocketMQ单机版安装
    RocketMQ介绍
  • 原文地址:https://www.cnblogs.com/h-hkai/p/9693161.html
Copyright © 2011-2022 走看看