素数是编程中经常需要用到的。作为学习Python的示例,下面是一个高效求解一个范围内的素数的程序,不需要使用除法或者求模运算。 1 #coding:utf-8 #设置python文件的编码为utf-8,这样就可以写入中文注释 2 def primeRange(n): 3 myAr...
分类:
编程语言 时间:
2014-07-09 21:47:08
阅读次数:
294
1 常规判定方法
素数判定问题就是对给定的正整数n判定是否为素数。所谓素数,是指恰好有2个约数的整数。因为n的约数都不超过n,所以只需要检查2~n-1的所有整数是否整除n就能判定是不是素数。不过,我们还能进一步优化。如果d是n的约数,那么n/d也是n的约数。由n=d*n/d可知min(d,n/d),所以只需要检查2~的所有整数就足够了。此时,素数判定的复杂度为O()。代码实现如下:...
分类:
其他好文 时间:
2014-07-08 16:00:24
阅读次数:
309
??
当年徐迟的一篇报告文学,中国人知道了陈景润和歌德巴赫猜想。
那么,什么是歌德巴赫猜想呢?
哥德巴赫是德国一位中学教师,也是一位著名的数学家,生于1690年,1725年当选为俄国彼得堡科学院院士。1742年,哥德巴赫在教学中发现,每个不小于6的偶数都是两个素数(只能被和它本身整除的数)之和。如6=3+3,12=5+7等等。公元1742年6月7日哥德巴赫写信给当时的大数学家...
分类:
其他好文 时间:
2014-07-08 13:57:26
阅读次数:
231
题目链接:uva 10831 - Gerg's
Cake
题目大意:给定a和p,p为素数,问说是否存在x,使得x2≡a%p
解题思路:勒让德记号,判断ap?12≡1%p
#include
#include
#include
using namespace std;
typedef long long ll;
ll pow_mod (ll a, ll n, ll mod)...
分类:
其他好文 时间:
2014-07-08 13:48:57
阅读次数:
146
Prime Ring ProblemTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 25134 Accepted Submission...
分类:
其他好文 时间:
2014-07-06 13:15:55
阅读次数:
231
UVA 1434 - YAPTCHA
题目链接
题意:求出题目中那个公式的答案
思路:
当3?k+7非素数的时候,那么(3?k+6)!(因为必然能找到两个因子相乘)
所以原式为0
当3?k+7为素数的时候,根据威尔逊定理,((3?k+6)!+1)%(3?k+7)==0,因此原式可以转化为[x
- (x - 1)] = 1
因此问题转化为只要判断3 * k + ...
分类:
其他好文 时间:
2014-07-06 11:42:44
阅读次数:
162
;; Fermat's Little Theorem:
;; If N is a prime number and A is any positive integer less
;; than N, then A raised to the N-th power is congruent to A modulo N
;; Two numbers are said to be congruent...
分类:
其他好文 时间:
2014-07-06 09:05:22
阅读次数:
158
题目链接:uva 1415 - Gauss Prime
题目大意:给出一个a,b,表示高斯数a+bi(i=?2 ̄ ̄ ̄√,判断该数是否为高斯素数。
解题思路;
a = 0 时,肯定不是高斯素数a != 0时,判断a2+2b2是否为素数即可。
#include
#include
#include
bool is_prime (int n) {
int m = sqr...
分类:
其他好文 时间:
2014-07-06 08:36:51
阅读次数:
317
原题找不到了,应该是usaco之类的题目吧。给一个可以交题的链接:http://www.cqoi.net:2012/problem.php?id=1004思路:将素数一个一个往里乘,保证扫描的顺序是从小到大的就可以了。思路跟usaco training的丑数有点像,算是那道题的简单版吧。我的实现: ...
分类:
其他好文 时间:
2014-07-05 21:12:47
阅读次数:
256
分解质因数算法 1.从N开始递减,找到满足 : n%i ==0 && n是素数 -> result2.存result到数组,递归执行(n/result)var result = new Array();
var factor = function f(n){
if(n == 1){return ;}
var n1 = n;
while(n1>1){
if(isPrime(n1) && n ...
分类:
其他好文 时间:
2014-07-04 07:21:41
阅读次数:
237