描述
所谓H数,是指只含有2,3,5,7这些质因数的数,如630是H数,而22不是。现在要求输出第n个H数,为了方便起见将H[1]定为1。已知n不超过10000,最后数据在int64范围之内。
输入
一个正整数n(不超过10000)。
输出
第n个H数。
输入样例 1
1
输出样例1
1
输入样例 2
30
输出样例2
49
描述
所谓H数,是指只含有2,3,5,7这些质因数的数,如630是H数,而22不是。现在要求输出第n个H数,为了方便起见将H[1]定为1。已知n不超过10000,最后数据在int64范围之内。
输入
一个正整数n(不超过10000)。
输出
第n个H数。
输入样例 1
1
输出样例1
1
输入样例 2
30
输出样例2
49
#include <iostream>
using namespace std;
bool isprime(int n)
{
for (int i = 2; i < n / 2; i++)
if (n % i == 0) return false;
return true;
}
bool isH(int n)
{
if (n < 11) return true;
for (int i = 11; i <= n; i++)
if (isprime(i) && n % i == 0) return false;
return true;
}
int main()
{
int n;
cin >> n;
int cnt = 0;
for (int i = 1; 1; i++)
{
if (isH(i)) cnt++;
if (cnt == n)
{
cout << i;
break;
}
}
return 0;
}