標題:第幾個幸運數
到x星球旅行的遊客都被髮給一個整數,作爲遊客編號。
x星的國王有個怪癖,他只喜歡數字3,5和7。
國王規定,遊客的編號如果只含有因子:3,5,7,就可以獲得一份獎品。
我們來看前10個幸運數字是:
3 5 7 9 15 21 25 27 35 45
因而第11個幸運數字是:49
小明領到了一個幸運數字 59084709587505,他去領獎的時候,人家要求他準確地說出這是第幾個幸運數字,否則領不到獎品。
請你幫小明計算一下,59084709587505是第幾個幸運數字。
需要提交的是一個整數,請不要填寫任何多餘內容
——————————————————————————————————————————————
答案:1905
#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=6e14;
vector<ll>vec;
int main()
{
for(ll i=1;i<6e14;i*=3){
for(ll j=1;j<6e14;j*=5){
if(i*j>N)break;
for(ll k=1;k<6e14;k*=7){
if(i*j*k>N)break;
vec.push_back(i*j*k);
}
}
}
sort(vec.begin(),vec.end());
for(ll i=vec.size()-1;i>0;i--){
if(vec[i]==59084709587505){
printf("%lld",i);
break;
}
}
return 0;
}