2018蓝桥杯第几个幸运数(C语言)

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

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

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

我们来看前 1010 个幸运数字是:

3 5 7 9 15 21 25 27 35 453579152125273545

因而第 1111 个幸运数字是: 4949

小明领到了一个幸运数字 5908470958750559084709587505,他去领奖的时候,人家要求他准确地说出这是第几个幸运数字,否则领不到奖品。

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

这道题直接暴力枚举就好了,幸运数因子只含有3,5,7,所以幸运数必定满足3的a次方乘以5的b次方乘以7的c次方。

#include <stdio.h>

#include <stdlib.h>

long int z=59084709587505;

int main(int argc, char *argv[])

{

  long long int a,b,c,d,e,s=0;

  for(a=0;pow(3,a)<=z;a++)

  {

    for(b=0;pow(5,b)<=z;b++)

    {

      for(c=0;pow(7,c)<=z;c++)

      {

        if(pow(3,a)*pow(5,b)*pow(7,c)<=z)

        {

          s=s+1;

        }

      }

    }

  }

  printf("%lld",s-1);//除去0 0 0 的情况

  return 0;

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值