思路:从一开始,直接暴力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;
}