匿名用户
1级
2018-11-23 回答
以下代码 python 2/3 通用。
#!/usr/bin/env python3
# coding=utf-8
"""http://wenwen.sogou.com/z/q856104582.htm
编写一个程序寻找一种特殊整数:一个n位的正整数等于其各位数字的n次方之和。例如:
407=4^3+0^3+7^3,所以407就是一个符合要求的特殊整数。
输入:正整数的位数n(n<=6)。
输出:所有符合要求的n位特殊数。若不存在符合条件的特殊数,则输出提示:“No output.”;若存在,则从小到大进行输出,每个数占一行。
"""
from __future__ import division, print_function, unicode_literals
import itertools
def get_int(digits, n):
return sum(i ** n for i in digits)
def test_get_int():
assert get_int((4, 0, 7), 3) == 407
assert get_int((4, 2, 7), 3) == 407 + 8
def digits_match(this_int, digits):
return sorted(str(this_int)) == sorted(''.join(map(str, digits)))