ProjectEuler 16
by Pymier0
PE16:
Tính tổng các chữ số của 2 mũ 1000.
Một bài toán quen thuộc đối với các học viên pymivn, sau 4 buổi học dễ dàng giải bằng 1 dòng code:
>>> sum(int(i) for i in str(2**1000))
đây là ví dụ tuyệt vời để minh họa sự tiện lợi của Python:
- dễ dàng đổi giữa các kiểu
- list comprehension
- tính số lớn tùy ý
Thử thách lần này là: nếu giới hạn về kết quả mọi phép tính trong bài không được lớn hơn 4 tỷ, hãy tìm đáp án của bài này?
Tức không được gõ 2**1000
, hay bất kì phép tính nào xuất hiện trong code có giá trị lớn hơn 4 tỷ.
- PS: Đây là giới hạn kích thước kiểu dữ liệu integer dương (unsigned int) trong C/C++
2**32 == 4294967296
. - PPS: C/C++ có kiểu
unsigned long long
có giá trị lớn nhất là2**64
.
Hãy tạo pull request với label #pe16 nhé. Đáp án sẽ có ở bài sau.
Đăng ký ngay tại PyMI.vn để học Python tại Hà Nội TP HCM (Sài Gòn), trở thành lập trình viên #python chuyên nghiệp ngay sau khóa học.