找出3000以内所有完数并存放在c盘根文件夹的文件ws.txt中
时间: 2023-12-14 13:40:25 浏览: 29
以下是使用Python实现的代码:
```python
import os
# 定义函数来计算一个数的因子和
def factor_sum(n):
factors = []
for i in range(1, n):
if n % i == 0:
factors.append(i)
return sum(factors)
# 查找完数
perfect_numbers = []
for i in range(2, 3001):
if factor_sum(i) == i:
perfect_numbers.append(i)
# 将完数保存到文件中
with open(os.path.join("C:\\", "ws.txt"), "w") as f:
f.write("Perfect numbers:\n")
for num in perfect_numbers:
f.write(str(num) + "\n")
```
这个程序会计算出3000以内所有的完数(即因子和等于自身的数),并将它们保存到C盘的ws.txt文件中。
相关问题
python,请找出3000以内所有完数并存放在c盘根文件夹的文件ws.txt中
好的,以下是Python代码实现:
```python
import os
def get_divisors(num):
"""
获取一个数的所有真因子(不包括自身)
"""
divisors = []
for i in range(1, num):
if num % i == 0:
divisors.append(i)
return divisors
def is_perfect_number(num):
"""
判断一个数是否为完数
"""
divisors = get_divisors(num)
return num == sum(divisors)
if __name__ == '__main__':
perfect_numbers = []
for i in range(1, 3001):
if is_perfect_number(i):
perfect_numbers.append(i)
with open('C:\\ws.txt', 'w') as f:
f.write(' '.join(map(str, perfect_numbers)))
print('完数已存放在 C 盘根文件夹的 ws.txt 文件中')
```
运行以上代码后,程序将会在 C 盘根文件夹生成一个名为 ws.txt 的文件,并将所有 3000 以内的完数写入该文件中。
用python查找某文件夹内所有文件夹及文件名称、文件形成时间并存到excel表中
你好!可以使用Python中的os、datetime和pandas模块来实现这个功能。以下是示例代码:
```python
import os
import datetime
import pandas as pd
def list_files(startpath):
output_list = []
for root, dirs, files in os.walk(startpath):
for file in files:
path = os.path.join(root, file)
ctime = datetime.datetime.fromtimestamp(os.path.getctime(path))
output_list.append((path, ctime))
return output_list
excel_file = 'file_list.xlsx'
startpath = '/path/to/folder'
files_list = list_files(startpath)
df = pd.DataFrame(files_list, columns=['File Name', 'Created Time'])
df.to_excel(excel_file, index=False)
print('已将文件列表保存到{}中!'.format(excel_file))
```
其中,`list_files`函数用于递归地遍历指定路径下的所有文件和文件夹,并将每个文件的路径和创建时间存储到一个列表中。`pd.DataFrame`将列表转换为Pandas的数据框,并使用`df.to_excel`将数据框保存为Excel文件。注意,此代码仅供参考,应根据实际需求进行适当修改。