python之质数判断

来源:互联网 发布:网络剧发行许可证 编辑:程序博客网 时间:2024/06/06 03:16

质数是什么?

所谓的质数就是只能被1和其本身所整除的数。

如果它不是质数,那么它的因子肯定是成对出现的。一个比它的平方根小,则另一个就要比平方根大。或者就是平方根例如9=3*3 

# 直接用编程语言来判断就是如下的形式

for i in range(2, number):    if number % i == 0:        print '质数'        break

# 当进行质数判断的时候不需要判断到全部数字,只需要判断到平方根就可以了。

# 因为如果一个数不是质数是合数,那么一定可以由两个自然数相乘得到,其中一个大于或等于平方根,另一个小于或等于平方根,并且成对出现。

import mathfor i in xrange(2, int(math.sqrt(number))+2):    if number %i == 0:        print ‘质数’        break

递归求因子的例子:求一个正整数的所有不可分解的因子 90 = 2*3*3*5

先求最小因子并添加到列表中,递归调用,求整数除以最小因子后的那个数的最小因子。

恭喜我能想到这一点

result = []import mathdef is_zhishu(number):    for i in xrange(2, int(math.sqrt(number))+2):        if number %i == 0:            return False    return Truedef  get_yinzi(number):    global result    for i in xrange(2, int(math.sqrt(number))+2):          if number % i == 0:               result.append(i)               break    other = number/i    if not is_zhishu(other):         return get_yinzi(other)    else:         result.append(other)get_yinzi(90)print result