ACM-数论-组合(暴力巧妙) 2018C/C++-A幸运数

题意:一些数字,只含有3,5,7的因子,形成一个数列:

3579,15,21,25,27,35,45,49,63,75,81,105,125....

然后给这些数字排序得到不同的次序,即:
num[1]=3
num[5]=15
num[11]=49
然后给你num[x]=59084709587505,求x是多少?

思路:这个还有个类似的情况是丑数(2,3,5)大家可以看看这个
其实数列就3,5,7这三个数字的组合,所以用set来维护整个数列的顺序,然后用前面的数字不断和3,5,7任一组合。具体。。看代码

#include
using namespace std;
typedef unsigned long long ULL;
int main(){
    ULL n=59084709587505,temp=1;
    ULL g=0;
    setq; 
    q.insert((ULL)3);
    q.insert((ULL)5);
    q.insert((ULL)7);
    while(temp3);
        q.insert(temp*5);
        q.insert(temp*7);
        //cout<
    }
    cout<return 0;
} 

你可能感兴趣的:(算法题解)