摘要: 该题题意就是求一个数最多能够开多少次方,这其中包含有负数,而且要用long long 型数据读入。首先将这个数的素因子分解求出,统计出它们的各自的个数,然后对它们的个数求一个gcd,最后输出。如果是正数的话直接输出,如果是负数的话需要将其的最大奇因子求出。代码如下:#include <cstdlib>#include <cstring>#include <cstdio>#include <algorithm>#include <cmath>using namespace std;int p[66000], cnt;long long 阅读全文
posted @ 2012-07-14 22:04 沐阳 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 问你一个数在一个连续区间,这个区间全为和数的长度。代码如下:#include <cstring>#include <cstdio>#include <cstdlib>#include <algorithm>#define MAXN 1300000using namespace std;int p[MAXN+5], rec[100005], N;void pre(){ int k; for (int i = 4; i <= MAXN; i += 2) { p[i] = 1; } for (int i = 3; i <= 1141; i 阅读全文
posted @ 2012-07-14 01:13 沐阳 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 代码如下:#include <cstdlib>#include <cstring>#include <cmath>#include <cstdio>using namespace std;int p[40010], a[10000], b[10000];void pre(){ for (int i = 4; i <= 40010; i += 2) { p[i] = 1; } for (int i = 3; i <= 200; i += 2) { if (!p[i]) { int k = 2 * i; fo... 阅读全文
posted @ 2012-07-14 00:33 沐阳 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 筛出素数然后直接暴力即可。代码如下:#include <cstdlib>#include <cstring>#include <cstdio>#define MAXN 10000using namespace std;int N, M, d, p[600005];int hash[10005], path[10005];void pre(){ int k; for (int i = 4; i <= MAXN; i += 2) { p[i] = 1; } for (int i = 3; i <= 105; i += 2) { if (!... 阅读全文
posted @ 2012-07-14 00:20 沐阳 阅读(418) 评论(0) 推荐(0) 编辑