思路:从一开始,直接暴力DFS,每次有三个选择*3 *5 *7,遇到小于结果的sum++,大于则返回。
#include<iostream>
#include<map>
typedef long long ll;
using namespace std;
map<ll, int> ma;
ll sum = 0, s = 0;
void dfs(ll a)
{
if (a >= s)return;
if (ma[a] >= 1)return;
ma[a]++;
sum++;
dfs(a * 3);
dfs(a * 5);
dfs(a * 7);
}
int main()
{
ll ans = 0;
s = 59084709587505;
dfs(1);
cout << sum;
}