SỐ HOÀN HẢO THỨ K

Viết chương trình tìm số nguyên dương hoàn hảo thứ K, biết rằng số nguyên dương hoàn hảo là số có tổng các chữ số bằng 10. Ví dụ, 5 số nguyên dương hoàn hảo đầu tiên là: 19, 28, 37, 46, 55.

Đầu vào: Tệp sohoanhao.inp.

+ Dòng 1: N là số lượng số K.

+ Dòng 2: Lần lượt các số K muốn tìm phân cách nhau một khoảng trắng.

Đầu ra: Số nguyên dương hoàn hảo thứ K tương ứng lần lượt lưu vào tệp sohoanhao.out.

Ví dụ:

sohoanhao.inpsohoanhao.out
219

28
1 2
355

73

91
5 7 9

Code mẫu

# Thực hiện tạo biến fi để mở file ra đọc
fi = open("baitap.inp","r",encoding ="utf-8")
# Thực hiện tạo biến fo để mở file ra ghi
fo = open("baitap.out","w",encoding ="utf-8")
# Xây dựng hàm kiểm tra số hoàn hảo
def kTra(n):
    return sum(map(int,str(n)))==10
# Xây dựng hàm kiểm tra số hoàn hảo thứ k
def timsoHH(k):
    dem = 0
    n = 1
    while True:
        if kTra(n):
            dem+=1
            if dem==k:
                return n
        n+=1
# Tạo biến đọc file doc - đọc từng dòng trong file baitap.inp
doc = fi.readline()
doc = int(doc)
# Ghi kết quả vào file fo
print(f"Số hoàn hảo thứ {doc} là:",end=" ", file=fo)
print(timsoHH(doc), file=fo)
print("Đã ghi xong!")
fi.close()
fo.close()

Bonus

Viết chương trình tính tổng các giá trị từ tệp tong.inp, ghi kết quả vào tệp tong.out

+ Đầu vào: Tệp tong.inp,

Dòng thứ nhất là n số phần tử tính tổng.

Dòng thứ hai là lần lượt n phần tử.

+ Đầu ra: Tổng n phần tử ghi trên 1 dòng duy nhất vào tệp tong.out.

Ví dụ:

tong.inp tong.out
366
11 22 33
fi = open("tong.inp","r",encoding ="utf-8")
fo = open("tong.out","w",encoding ="utf-8")
doc1 = int(fi.readline())
doc2 = list(map(int,fi.readline().split()))
t = 0
for i in doc2:
    t+=i
print(t, file=fo)
print("Đã ghi xong!")
fi.close()
fo.close()

You may also like...

0 0 đánh giá
Đánh giá bài viết
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận
0
Bạn hãy viết bình luận cho nội dung này !x