python寻找不一样的约数
时间: 2023-10-19 15:23:56 浏览: 38
要寻找一个数的不同约数,可以使用以下代码:
```python
def find_divisors(n):
divisors = set() # 使用 set 存储约数,可以去重
for i in range(1, int(n ** 0.5) + 1): # 只需要遍历 1 到根号 n
if n % i == 0:
divisors.add(i)
divisors.add(n // i) # n // i 是 n 的另一个约数
return sorted(list(divisors)) # 将 set 转换为 list,然后排序
# 示例
print(find_divisors(12)) # [1, 2, 3, 4, 6, 12]
```
这个方法的时间复杂度是 O(根号 n)。
相关问题
python寻找数组中最大公约数
可以使用Python的math库中的gcd函数来寻找数组中的最大公约数。
示例代码如下:
```python
import math
def find_gcd(arr):
result = arr[0]
for i in range(1, len(arr)):
result = math.gcd(result, arr[i])
return result
arr = [12, 24, 36, 48]
print(find_gcd(arr)) # 输出12
```
这里通过循环遍历数组,依次计算每个元素与前面计算结果的最大公约数,最终得到整个数组的最大公约数。
python 寻找不重复元素
要寻找一个列表中的不重复元素,可以使用Python的集合(set)来实现。集合中的每个元素都是唯一的,因此可以将列表转换成集合,然后再将集合转换回列表即可得到不重复的元素。
下面是一个示例代码:
```python
def find_unique_elements(lst):
unique_elements = list(set(lst))
return unique_elements
# 示例输入
data = [1, 2, 3, 4, 5, 2, 4, 6, 7, 3, 8]
# 寻找不重复元素
unique_data = find_unique_elements(data)
# 输出结果
print(unique_data)
```
运行结果为:[1, 2, 3, 4, 5, 6, 7, 8],该列表为原始列表中的不重复元素集合。
以上是通过集合实现寻找不重复元素的方法。当然,也可以使用其他的方法,比如遍历列表,使用条件判断等等。具体方法的选择可以根据实际需求和数据规模来决定。