摘要: 欧拉函数欧拉函数+预处理题目大意:给定两个整数a,b,计算a、b之间的欧拉函数值。算法分析:定义:对于正整数n,φ(n)是小于或等于n的正整数中,与n互质的数的数目。 例如:φ(8) = 4,因为1,3,5,7均和8互质。性质:1.若p是质数,φ(p) = p-1. 2.若n是质数p的k次幂,φ(n) = (p-1)*p^(k-1)。因为除了p的倍数都与n互质 3.欧拉函数是积性函数,若m,n互质,φ(mn) = φ(m)φ(n). 根据这3条性质我们就可以推出一个整数的欧拉函数的公式。因为一个数总可以写成一些质数的乘积的形式。 E(k) = (p1-1)(p2-1)...(... 阅读全文
posted @ 2012-10-03 21:05 快乐. 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 素数筛http://blog.csdn.net/guiyinzhou/article/details/6437990 由于一个合数总是可以分解成若干个质数的乘积,那么如果把质数(最初只知道2是质数)的倍数都去掉,那么剩下的就是质数了。例如要查找100以内的质数,首先2是质数,把2的倍数去掉;此时3没有被去掉,可认为是质数,所以把3的倍数去掉;再到5,再到7,7之后呢,因为8,9,10刚才都被去掉了,而100以内的任意合数肯定都有一个因子小于10(100的开方),所以,去掉,2,3,5,7的倍数后剩下的都是质数了。用程序可以这样解决,引入布尔类型数组a[i],如果i是质数,a[i]=true,否 阅读全文
posted @ 2012-10-03 21:04 快乐. 阅读(244) 评论(0) 推荐(0) 编辑