用穷举法求某数段的水仙花数python
时间: 2023-11-01 20:13:04 浏览: 42
水仙花数是指一个 n 位正整数( n≥3 )其各位数字的 n 次方和等于该数本身。例如:1^3 + 5^3 + 3^3 = 153。
下面是用穷举法求某数段的水仙花数的 Python 代码:
```python
start = int(input("请输入起始数:"))
end = int(input("请输入结束数:"))
for i in range(start, end+1):
temp = i
sum = 0
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
if i == sum:
print(i)
```
首先,用户需要输入起始数和结束数,然后使用 `range` 函数遍历这个区间内的所有整数。对于每个整数,将它的每一位上的数字取出来,然后将它们的三次方相加,最后与这个整数本身比较,如果相等就说明这个整数是水仙花数,打印输出即可。
相关问题
python用穷举法求两个数的最大公约数代码
以下是用 Python 实现用穷举法求两个数的最大公约数的代码:
```python
def gcd(a, b):
if a > b:
smaller = b
else:
smaller = a
for i in range(1, smaller+1):
if((a % i == 0) and (b % i == 0)):
gcd = i
return gcd
```
其中,函数 `gcd(a, b)` 的功能是求出 a 和 b 的最大公约数。这里使用了穷举法,从 1 到较小的那个数开始遍历,如果同时能被 a 和 b 整除,就更新最大公约数的值。最后返回最大公约数的值。
python输出符合条件水仙花数,同时输出穷举法次数。
可以使用以下代码输出符合条件的水仙花数,并计算出穷举法的次数:
```python
count = 0 # 穷举法次数的计数器
for i in range(100,1000):
# 将 i 拆分为各个位上的数字
a = i // 100
b = (i // 10) % 10
c = i % 10
# 判断是否符合水仙花数的定义
if a**3 + b**3 + c**3 == i:
print(i)
count += 1
print("穷举法次数:", count)
```
在这段代码中,我们使用了一个 `count` 变量来计数穷举法的次数。每次循环,都会将 `count` 加 1。最后输出 `count` 的值即可得到穷举法的次数。