

Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
Trả lời + Giải thích:
n=int(input()) # nhập một số nguyên n
if 0 < n <= 10**9: #kiểm tra điều kiện
while True: # dùng lặp while và tạo biến để làm
x= str(n)
s = sum(map(int , x))
if n % s ==0: #dùng if để kiểm tra có phải số harshad không
print(n)
break
n+=1
Hãy giúp mọi người biết câu trả lời này thế nào?
![]()
*Ý tưởng : ta tạo hàm để tính tổng các chữ số. Sau đó lặp vô tận đến khi nào tìm được đáp án thì thoát bằng lệnh break
*Mô tả thuật toán :
- B1 : nhập n
- B2 : Nếu n chia hết tổng các chữ số của n (hàm) thì chuyển tới B5
- B3 : n ← n + 1
- B4 : quay lại B2
- B5 : xuất n, kết thúc
*Code :
#$\color{#00FF00}{\texttt{Hàm tính tổng}}$
def sum_number(n):
n = str(n)
return sum([int(i) for i in n])
#$\color{#00FF00}{\texttt{Nhập n}}$
n = int(input())
#$\color{#00FF00}{\texttt{Vòng lặp}}$
while True :
#$\color{#00FF00}{\texttt{Kiểm tra điều kiện}}$
if n % sum_number(n) == 0 :
break
n += 1 #$\color{#00FF00}{\texttt{Tăng n lên 1 đơn vị}}$
#$\color{#00FF00}{\texttt{In ra kết quả}}$
print(n)
*Muốn copy thì đây :
def sum_number(n):
n = str(n)
return sum([int(i) for i in n])
n = int(input())
while True :
if n % sum_number(n) == 0 :
break
n += 1
print(n)
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin