【基础入门题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个数字只有两个相同的数字,那就是说把数组排序后,这两个数一定相邻。通过排序算法进行排序,在循环判断相邻的数即可。
299 0
|
6月前
|
Java Go C++
Golang每日一练(leetDay0106) 超级丑数、右侧小于当前元素的个数
Golang每日一练(leetDay0106) 超级丑数、右侧小于当前元素的个数
49 0
Golang每日一练(leetDay0106) 超级丑数、右侧小于当前元素的个数
|
Python
【基础入门题047】随机整数列表
【基础入门题047】随机整数列表
50 0
|
Python
【基础入门题056】数字排列(一)
【基础入门题056】数字排列(一)
71 0
|
Python
【基础入门题017】切片法求回文数
【基础入门题017】切片法求回文数
129 0
|
Python
【基础入门题001】7的倍数或包含7的正整数
【基础入门题001】7的倍数或包含7的正整数
166 0
|
人工智能 搜索推荐 vr&ar
每日一题[LeetCode 315]计算右侧小于当前元素的个数
发现leetcode的困难难度做起来还是需要点时间的(还是我太菜了),而且可能大多数人也不能接受,所以明天开始穿插做中等难度题目。
|
Python
【基础入门题013】求连续根号的值
【基础入门题013】求连续根号的值
84 0
|
Python
【基础入门题026】佩尔数列Pell(n)
【基础入门题026】佩尔数列Pell(n)
108 0
|
Python
【基础入门题033】统计字符数
【基础入门题033】统计字符数
88 0