UVA 11752 The Super Powers——合数
#include #include #include #include #include #include #include #define OUT freopen("out.txt", "w", stdout)using namespace std;typedef unsigned long long ull;const double key = log(1.0 * ULONG_LONG_MAX - 1);const int maxn = 65;bool isprime[maxn];int prime[maxn], primecnt, he[maxn], hecnt;void init() { memset(isprime, true, sizeof(isprime)); primecnt = hecnt = 0; for (int i = 2; i < maxn; i++) { if (isprime[i]) { prime[++primecnt] = i; for (int j = i * 2; j < maxn; j += i) isprime[j] = false; } else he[++hecnt] = i; }}ull ipow(ull x, int y) { ull ans = 1; while (y) { if (y & 1) ans *= x; x *= x; y >>= 1; } return ans;}set s;set::iterator it;int main() { init(); s.clear(); s.insert(1); for (int i = 2; i < (1<<16); i++) { int limit = (int)ceil(key / log(i)); for (int j = 1; j <= hecnt && he[j] < limit; j++) { s.insert(ipow(i, he[j])); } } for (it = s.begin(); it != s.end(); it++) cout << *it << endl; return 0;}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。