【基础入门题】2021.10.29
求一个正整数 n 的所有质因数中不相同的个数。
如没有质因数或质因数只有自身的则输出0,如:
Factor(6) = 2; Factor(7) = 0; Factor(1260) = 4
编程语言:包括但不限于Python
题目来源:派森特给站每日刷题频道
方法一:
def Factor(n): res = [] for i in range(2,n): if n%i==0: flag = True for j in res: if i%j==0: flag = False if flag: res.append(i) return len(res) print(Factor(6), Factor(7), Factor(1260))
方法二:最大质因数和根号n的关系
def Factor(n): res = [] for i in range(2,int(n**0.5+1)+1): if n%i==0: flag = True for j in res: if i%j==0: flag = False if flag: res.append(i) return len(res) print(Factor(6), Factor(7), Factor(1260))
方法三:判断是否质数可以调用自己
def Factor(n): res = set() for i in range(2,n): if not(n%i or Factor(i)): res.add(i) return len(res) print(Factor(6), Factor(7), Factor(1260))