【基础入门题002】质因数的个数

简介: 【基础入门题002】质因数的个数

91a533db7c1e0c191113df341f73489c.png

【基础入门题】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))
目录
相关文章
|
搜索推荐 算法 Android开发
【Android面试】有1000个数,1000个数的大小范围是0-999,有两个相同的数字,请设计算法找出来
思路如下: 1000个数字只有两个相同的数字,那就是说把数组排序后,这两个数一定相邻。通过排序算法进行排序,在循环判断相邻的数即可。
316 0
|
8月前
|
Java
【LeetCode力扣】面试题 17.14. 最小K个数(top-k问题)
【LeetCode力扣】面试题 17.14. 最小K个数(top-k问题)
105 1
|
8月前
|
Java Go C++
Golang每日一练(leetDay0106) 超级丑数、右侧小于当前元素的个数
Golang每日一练(leetDay0106) 超级丑数、右侧小于当前元素的个数
62 0
Golang每日一练(leetDay0106) 超级丑数、右侧小于当前元素的个数
|
8月前
|
算法
leetcode-面试题 17.09:第 k 个数
leetcode-面试题 17.09:第 k 个数
41 0
|
Python
【基础入门题001】7的倍数或包含7的正整数
【基础入门题001】7的倍数或包含7的正整数
211 0
|
Python
【基础入门题047】随机整数列表
【基础入门题047】随机整数列表
59 0
|
Python
【基础入门题033】统计字符数
【基础入门题033】统计字符数
98 0
|
Python
【基础入门题017】切片法求回文数
【基础入门题017】切片法求回文数
138 0
|
Python
【基础入门题004】转换百分制分数
【基础入门题004】转换百分制分数
89 0