LQ0118 第几个幸运数枚举+迭代
Posted 海岛Blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LQ0118 第几个幸运数枚举+迭代相关的知识,希望对你有一定的参考价值。
题目来源:蓝桥杯2018初赛 C++ A组D题
题目描述
到x星球旅行的游客都被发给一个整数,作为游客编号。
x星的国王有个怪癖,他只喜欢数字3,5和7。
国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品。
前10个幸运数字是:3 5 7 9 15 21 25 27 35 45,因而第11个幸运数字是:49
小明领到了一个幸运数字 59084709587505。
去领奖的时候,人家要求他准确说出这是第几个幸运数字,否则领不到奖品。
请你帮小明计算一下,59084709587505是第几个幸运数字。
输出格式
输出一个整数表示答案
问题分析
枚举因子3、5和7,并采用迭代计算。
枚举的数中包括1。
AC的C语言程序如下:
/* LQ0118 第几个幸运数 */
#include <stdio.h>
typedef long long LL;
LL N = 59084709587505;
int main()
int cnt = 0;
for (LL i = 1; i <= N; i *= 3)
for (LL j = 1; i * j <= N; j *= 5)
for (LL k = 1; i * j * k < N; k *= 7)
cnt++;
printf("%d\\n", cnt);
return 0;
以上是关于LQ0118 第几个幸运数枚举+迭代的主要内容,如果未能解决你的问题,请参考以下文章