使用python在一行中输入一个 正整数 N,判断正整数 N 是否是完全数。如果是完全数则输出所有因子和的等式,例如6=1+2+3,并输出其由星号组成的三角形数
时间: 2024-01-22 12:19:08 浏览: 84
python 和为s的连续正数序列,输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数
以下是代码实现:
```python
N = int(input())
# 判断 N 是否是完全数
factors = []
for i in range(1, N):
if N % i == 0:
factors.append(i)
if sum(factors) == N:
# 输出因子和的等式
print("{}=".format(N), end="")
for i, factor in enumerate(factors):
if i == len(factors) - 1:
print(factor)
else:
print("{}+".format(factor), end="")
# 输出由星号组成的三角形数
for i in range(1, N+1):
for j in range(i):
print("*", end="")
print()
else:
print("{}不是完全数".format(N))
```
代码思路:
1. 输入一个正整数 N;
2. 遍历 1 到 N-1 的所有正整数,将 N 的因子存储到列表 factors 中;
3. 如果 factors 中的元素和等于 N,则 N 是完全数,否则不是;
4. 如果 N 是完全数,则输出因子和的等式,由星号组成的三角形数;
5. 否则输出提示信息。
例如,当输入 6 时,输出如下:
```
6=1+2+3
*
**
***
```
阅读全文