• 牛客寒假算法基础集训营5 炫酷数字 (暴力)


    炫酷数字

    链接:https://ac.nowcoder.com/acm/contest/331/G

    题目描述

    小希希望你构造一个最小的正整数,使得其有n个因子。

    输入描述:

    第一行一个整数T表示数据组数

    每组数据第一行输入一个正整数n,表示其因子数。

    n1,000,000

    T1,000,000

    输出描述:

    输出一行一个整数,表示你构造出的这个数。注意:你需要保证你构造的数1,000,000,如果在这个范围里面无法构造出一个正整数满足条件,请输出-1。
    示例1

    输入

    2
    4
    5

    输出

    6
    16
    这个题 用dfs超时,暴力竟然过了。。。。
     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 using namespace std;
     6 const int maxn=1e6+5;
     7 int casen,n;
     8 int prime[maxn],minn[maxn];
     9 void getprime() {
    10     prime[1] = 1;
    11     for(int i=2;i<maxn;i++) {
    12         if(prime[i] == 0) {
    13             for(int j = i+i;j<maxn;j+=i)
    14                 prime[j] = 1;
    15         }
    16     }
    17 }
    18 int find(int x) {
    19     if(prime[x]==0)
    20         return 2;
    21     int ans = 1;
    22     for(int i=2;i*i<=x;i++) {
    23         if(x%i==0) {
    24             int cnt = 0;
    25             while(x%i==0) {
    26                 x/=i;
    27                 cnt++;
    28             }
    29             ans*=(cnt+1);
    30         }
    31     }
    32     if(x>1)
    33         ans*=2;
    34     return ans;
    35 }
    36 int main()
    37 {
    38     minn[1] = 1;
    39     getprime();
    40     for(int i=2;i<=1000000;i++) {
    41         int tmp = find(i);
    42         if(minn[tmp] == 0)
    43             minn[tmp] = i;
    44     }
    45     scanf("%d",&casen);
    46     while(casen--)
    47     {
    48         scanf("%d",&n);
    49         if(minn[n]==0)
    50             puts("-1");
    51         else
    52             printf("%d
    ",minn[n]);
    53     }
    54 }
  • 相关阅读:
    十天冲刺---Day10
    十天冲刺---Day9
    团队博客目录
    【Beta阶段】M2事后分析
    【Beta阶段】展示博客
    【Beta阶段】测试报告
    【Beta阶段】发布说明
    【Beta阶段】团队源代码管理
    【Beta阶段】第十次Scrum Meeting!!!
    【Beta阶段】第九次Scrum Meeting!(论坛已成功上线)
  • 原文地址:https://www.cnblogs.com/1013star/p/10372375.html
Copyright © 2020-2023  润新知