合数,即有约数的数。
判断某个数是否为合数,需要几个步骤
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的所有约数