合数,即有约数的数。

 

判断某个数是否为合数,需要几个步骤

1.是否>3

2.是否为奇数,因为偶数肯定是合数

3.是否可被比自己小的数整除

实现逻辑:

1.如果<=3则不是合数,返回false

2.如果不是奇数,返回true

3.如果能整除,返回true,都不能整除则返回false

代码如下:

 1 def isFactor(num):
 2     '''是否为合数'''
 3     if num>3:
 4         if num%2==1:
 5             for i in range(2, (num-1)//2): 
 6                 if num%i == 0:
 7                     return True #有约数是合数
 8             return False #没有约数不是合数
 9         return True #偶数都是合数
10     return False #小于4不是合数
11 
12 if __name__ == '__main__':
13     Flist = []  #存放合数列表
14     for i in range(50): #统计50以内的所有合数
15         if isFactor(i):
16             Flist.append(i)
17     print(len(Flist))  #打印合数数量
18     print(Flist)

 

获取某个数的所有约数,依旧是用整除的方式。

1.是否>3

2.用比自己小的数依次进行整除,如果能整除,说明是约数

代码如下:

def getFactor(num):
    '''获取所有约数'''
    if num>3:
        Flist = [1] 
        for i in range(2,num+1):
            if num%i==0:
                Flist.append(i)
        return Flist

if __name__ == '__main__':
    print(getFactor(39)) #获取39的所有约数