时间限制 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; }