【每日一题(14)】函数F(x) HRBUST

来源:互联网 发布:cf咪咕刷枪软件 编辑:程序博客网 时间:2024/06/06 04:21

函数F(x) HRBUST - 1990

我们定义一个函数F(x)=k;即是x的因子数目为k,例如F(3)=2,3的因子为1和3,F(4)=3,4的因子有1,2,4三个,接下来问题来了,现在给你一个整数k,求满足函数F(x)=k的最小x。(题目中所涉及的整数均为正整数)。

Input

本题有多组测试数据,每组数据的第一行有一个整数n,表示有n组询问(1

Output

输出包括一行,这一行只包含一个整数,既满足题目要求的数x,如果x大于1000,输出-1。

Sample Input

3
7
25
2

Sample Output

64
-1
2

题意

题解

#include<stdio.h>#include<math.h>int main(void){    int i,j,u,n,k,cnt;    while(scanf("%d",&n) != EOF){        for(u = 0;u < n;u ++){            scanf("%d",&k);            cnt = 0;            for(i = 1;cnt != k; i++){                cnt = 0;                for(j = 1;j <= sqrt(i); j++){                    if(i%j == 0){                        if((double)(j) == sqrt(i))                            cnt++;                        else                            cnt += 2;                    }                }                if(i > 1000){                    printf("-1\n");                    break;                }            }            if(i < 1001)                printf("%d\n",i - 1);        }    }    return 0;}
原创粉丝点击