
smithNumber
Một số được gọi là smith nếu:
- Số đó có thể phân tích ra thành tích của ít nhất 2 thừa số nguyên tố.
- Tổng của các chữ số của các ước nguyên tố sau khi được phân tích (không để dạng số mũ) có giá trị đúng bằng tổng các chữ số của số đó.
Cho trước một số nguyên n
. Hãy kiểm tra xem số đó có phải là số smith hay không. Nếu đúng trả về true
, false
nếu ngược lại.
Ví dụ:
- Với
n = 4
. Đầu rasmithNumber(n) = true
.
Giải thích: 4 = 2*2 mà 2+2 = 4 suy ra thỏa mãn
- Với
n = 6
. Đầu rasmithNumber(n) = false
.
Giải thích: 6 = 2*3 mà 2+3 khác 6 suy ra không thỏa mãn.
- Với
n = 666
. Đầu rasmithNumber(n) = true
.
Giải thích: 666 = 2*3*3*37 khi phân tích tổng các chữ số sẽ là 2+3+3+3+7 = 18 mà tổng các chữ số của n = 18 thỏa mãn.
Đầu vào/Đầu ra:
- [Thời gian chạy] 0.5s với C++, 3s với Java và C#, 4s với Python, Go và JavaScript.
- [Đầu vào] Integer n
0<=n<=10^6
- [Đầu ra] Boolean
Số đó có phải số smith hay không
Post Comment