Codeforces27E Number With The Given Amount Of Divisors

来源:互联网 发布:ios远程mac 编辑:程序博客网 时间:2024/06/11 02:46

题目:http://codeforces.com/problemset/problem/27/E
分析:详见上一篇博文
代码:

#include <cstdio>#include <algorithm>using namespace std;const int pri[20]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53};int n;long long int ans=1000000000000000000;void dfs(int p,long long sum,int num){    if(num>n) return;    if(num==n)    {        ans=min(ans,sum);        return;    }    int i;    for(i=1;i<=n;i++)    {        if(ans/pri[p]<=sum) break;        dfs(p+1,sum*=pri[p],num*(i+1));    }    return;}int main(){    scanf("%d",&n);    dfs(1,1,1);    printf("%I64d",ans);    return 0;}
0 0
原创粉丝点击