【蓝桥】第几个幸运数-多种解法未完工

题目

题目描述

到 X 星球旅行的游客都被发给一个整数,作为游客编号。

X 星的国王有个怪癖,他只喜欢数字 3,5 和 7。

国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品。

我们来看前 10 个幸运数字是:3 5 7 9 15 21 25 27 35 45
因而第 11 个幸运数字是: 49
小明领到了一个幸运数字 59084709587505,他去领奖的时候,人家要求他准确地说出这是第几个幸运数字,否则领不到奖品。

请你帮小明计算一下,59084709587505 是第几个幸运数字。

解题

源码

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
int cnt = 0;
long long n = 59084709587505;
for (int i = 0; pow(3, i) < n; i++)
for (int j = 0; pow(5, j) < n; j++)
for (int z = 0; pow(7, z) < n; z++)
if (pow(3, i) * pow(5, j) * pow(7, z)<n)
cnt++;
cout << cnt;
return 0;
}

Python

1

总结

C++版

  1. 已经确定59084709587505是答案了,直接暴力破解,穷举出比n小的所有结果即可。

Python版

1.