Skip to content

Commit 000b42a

Browse files
feat: menambahkan algoritma krisnamurty (#342)
* feat: menambahkan algoritma krisnamurty * fix: memperbaiki algoritma krisnamurty * fix: memperbaiki algoritma krisnamurty * fix: other/krisnamurtyCheck.py Co-authored-by: arfy slowy <[email protected]> --------- Co-authored-by: arfy slowy <[email protected]>
1 parent 904056e commit 000b42a

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

other/krisnamurtyCheck.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Mengecek apakah krisnamurty atau bukan
2+
from math import factorial
3+
4+
5+
def krisnamurty(number : int) -> int | str:
6+
"""
7+
Angka Krisnamurty adalah angka factorial yang setiap digitnya
8+
sama dengan factorial nya.
9+
10+
contoh :
11+
145! = 1! + 4! + 5! -> Angka Krisnamurty
12+
13+
>>> krisnamurty(145)
14+
'Angka Krisnamurty'
15+
>>> krisnamurty(1)
16+
'Angka Krisnamurty'
17+
>>> krisnamurty(123)
18+
'Bukan Angka Krisnamuty'
19+
20+
"""
21+
error = "Masukkan Angka dengan benar"
22+
benar , bukan = "Angka Krisnamurty" , "Bukan Angka Krisnamuty"
23+
if not isinstance(number,int) or number < 0:
24+
return error
25+
else :
26+
total = sum(factorial(int(d)) for d in str(number))
27+
return benar if total == number else bukan
28+
29+
30+
def main(args=None):
31+
import doctest
32+
33+
doctest.testmod()
34+
35+
# sample case
36+
print(krisnamurty(145)) # Angka Krisnamurty
37+
print(krisnamurty(1)) # Angka Krisnamurty
38+
print(krisnamurty(123)) # Bukan Angka Krisnamuty
39+
40+
41+
if __name__ == "__main__":
42+
main()

0 commit comments

Comments
 (0)