做出做道题需要注意2个地方:
首先可以打表找规律,找到规律我们可以发现:
1.如果gcd(a,b) = a ^ b = c,那么 b = a - c;
既然这样我们可以枚举a,c,求出b之后判断 c 是否等于 a ^ b,那么如何枚举c呢?
2.利用类似筛选素数的方法去枚举a,c
首先c是a的约数,所以这道题我们需要枚举的其实是a的约数,但是约数也不好枚举,我们可以通过c去枚举a,我们通...
分类:
其他好文 时间:
2014-08-12 13:43:39
阅读次数:
156
筛选法求素数:
筛选素数的方法不是直接判断一个数是不是素数,而是将不是素数的数全部去除,剩余的就是素数了。
1.如果区间包含1,首先将1标记为非素数。
2.从下一个最小的素数a开始,将该素数的倍数(2a,3a,……,ka)全部标记为非素数。
3.从a的后面找下一个最小的素数,重复2操作。
4.重复2,3操作,直到所有元素都筛选完为止。
例如:筛选1到25之间的素数
①按部就班地按上面...
分类:
其他好文 时间:
2014-08-08 16:02:36
阅读次数:
335
筛选素数方法小结: 最简单的筛素数法方法就是从2开始,将所以2的倍数去掉,然后从3开始,将3的倍数去掉,依次进行下去即可。根据这样很容易写出代码,下面代码就是是筛素数法得到100以内的素数并保存到primes[]数组中。 1 const int MAXN = 100; 2 bool flag[MA....
分类:
其他好文 时间:
2014-07-31 16:36:37
阅读次数:
223
题目来源:Light 1289 LCM from 1 to n
题意:。。
思路:从1到n 打过某个数是以一个素数的几次方 那么答案就乘以这个素数
主要是筛选素数 存不下 位优化 一个整数32位标记32个数 内存缩小32倍
是学习别人的
#include
#include
#include
#include
using namespace std;
const int maxn ...
分类:
其他好文 时间:
2014-06-10 18:05:45
阅读次数:
250
筛选素数方法小结:
最简单的筛素数法方法就是从2开始,将所以2的倍数去掉,然后从3开始,将3的倍数去掉,依次进行下去即可。根据这样很容易写出代码,下面代码就是是筛素数法得到100以内的素数并保存到primes[]数组中。
1 const int MAXN = 100; 2 bool flag[MA....
分类:
其他好文 时间:
2014-05-09 23:52:57
阅读次数:
495