01/10/2018, 10:44

Giúp mình giải bài này bằng Python với!

Hãy in ra các số đặc biệt trong khoảng (0,1000) (số đặc biệt là số có tổng lập
phương các chữ số của nó bằng chính nó, ví dụ: 153 = 1^3 + 5^3 +3^3)

HK boy viết 12:55 ngày 01/10/2018

Topic này là topic hỏi bài à? Mình chỉ gợi ý là dùng for, tách các chữ số dùng mod/while nhé.

Quang Minh viết 12:53 ngày 01/10/2018
# python 3
def check(n):
	temp = n
	sum = 0
	while n:
		m = int(n%10)
		n = int(n/10)
		sum += m**3
	if (sum == temp): return 1
	else: return 0
for i in range(0,1000):
	if (check(i)): print(i)
Lương Thế Hải viết 12:54 ngày 01/10/2018

chuyển số đó thành dạng string sau đó kiểm tra từng phần tử của số đó xem có đúng điều kiện thỏa mãn không thôi

Henry viết 12:57 ngày 01/10/2018

Nghe nói khá tốn tài nguyên. Nên dùng %, // thì hơn

Fang Zhu viết 12:57 ngày 01/10/2018

minh chỉ dùng vòng while
nên giải thế này là ổn nhất nhỉ:
n= 1
while (n <1000):
hundres = n//100
tens = n//10%10
units = n%10
if (n == hundres3 + tens3 + units**3):
print (n)
n = n + 1

Bài liên quan
0