Lucky number

it2026-08-02  2

时间限制 1000 ms 内存限制 64 MB

题目描述

李老师的lucky number 是3,5和7,他爱屋及乌,还把所有质因数只有3,5,7的数字认定为lucky number,比如9, 15, 21, 25等等。请聪明的你帮忙算一算小于等于x的lucky number有多少个?

输入数据

一个正整数x,3=<x<=1000000000000

输出数据

小于等于x的lucky number的个数。

样例输入

49

样例输出

11

样例说明

int存不下

#include <iostream> #include <algorithm> #include <cmath> using namespace std; int main() { long long goal; cin >> goal; int lucky[3] = { 3,5,7 }; long ans = 0; long tag = 1; while (pow(lucky[0], tag) <= goal) { tag++; } for (int i = 1; i < tag; i++) { for (int x = i; x >= 0; x--) { for (int y = i - x; y >= 0; y--) { int z = i - x - y; long long tmp = pow(lucky[0], x) * pow(lucky[1], y) * pow(lucky[2], z); if (tmp <= goal) { ans++; } else { break; } } } } cout << ans << endl; return 0; }
最新回复(0)