python 核心练习第八章习题(部分)

来源:互联网 发布:网络简介的阅读答案 编辑:程序博客网 时间:2024/05/01 03:13

8-4 素数:输入一个数,如是素数返回TRUE,否 False
#--coding:utf-8--#求最大约数或者素数def isprime(a):    i=2    while i <= a/i:        if a%i==0:         b=False;break        i=i+1    else:        b=True    return bif __name__=='__main__':        print isprime(int(raw_input()))
简化版:

a=(x for x in range(20,0,-1) if 21%x==0) for i in a:     if type(i)==int:             print i             break 

8-5 约数,返回该数的所有约数,包括1和本身

<pre name="code" class="python">#--coding:utf-8--#求a的所有约数包括1和自己def getfactors(a):    i=1;b=list()    while i <= a/i:        if a%i==0:            b.append((i,a/i))        i=i+1        return bif __name__=='__main__':    print getfactors(int(raw_input()))





简化版

 # [x for i range(1,21) if 20%i==0]


8-6素因子分解


#--coding:utf-8--#求素数公约数,素因子求解def suyingzi(a):    i=2;b=list()    while i<=a/i:        if a%i==0:            b.append(i)            a=a/i            i=2        else:            i += 1    else:        b.append(a)                    return b    if __name__=='__main__':        print suyingzi(int(raw_input()))


8-7 求全数

#--coding:utf-8--# 求全数def getfactors(a):    i=1;b=0    while i <= a/i:        if a%i==0:            b=b+i+a/i                    i=i+1    if b-a==a:        c=True    else:        c=False            return cif __name__=='__main__':    print getfactors(int(raw_input()))


简化版  可以使用列表解析和生成器(略)
            







0 0
原创粉丝点击