python练习1 质数分解

fenby.com

9、实战练习

学了这么多东西,是不是跃跃欲试了,下面让我们来做一道数学题检验一下成果。

  1. 写一个函数接受一个int型参数,判断改参数是否为质数,返回布尔值。
  2. 写一个函数接受一个int型参数,返回该参数的所有因子,返回一个列表。
  3. 利用上面两个函数编写一个函数,接受一个int型参数,返回这个参数的最大质因子
# -*- coding:utf8 -*-
# 支持中文输入
#写一个函数接受一个int型参数,判断改参数是否为质数,返回布尔值。
#写一个函数接受一个int型参数,返回该参数的所有因子,返回一个列表。
#利用上面两个函数编写一个函数,接受一个int型参数,返回这个参数的最大质因子。
#目前不支持输入数值过大的值,不然会引起MemoryError
import math    #导入

def is_prime(n):
    
    if n % 2 == 0 and n > 2 :               #and 而不是&&
        return False
    
    for i in range(3,int(math.sqrt(n))+1):

        if n % i == 0 :
            return False
        
    return True

def prime(n):

    elem = []
    
    for i in range(1,n+1):
        
        if n % i == 0:
            elem.append(i)    //这里不能用elem[j]=i这种方法,因为elem[]空间未知
            
    return elem

def max_prime(n):
    
    eleme = []
    
    primelst = prime(n)
    
    for i in primelst:
        
        if is_prime(i) == True:
            
            eleme.append(i)
    
    return max(eleme)

a = raw_input("")

print is_prime(int(a)),prime(int(a)),max_prime(int(a))   


你可能感兴趣的:(python学习)