Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
14
Task/Kaprekar-numbers/Python/kaprekar-numbers-1.py
Normal file
14
Task/Kaprekar-numbers/Python/kaprekar-numbers-1.py
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
>>> def k(n):
|
||||
n2 = str(n**2)
|
||||
for i in range(len(n2)):
|
||||
a, b = int(n2[:i] or 0), int(n2[i:])
|
||||
if b and a + b == n:
|
||||
return n
|
||||
#return (n, (n2[:i], n2[i:]))
|
||||
|
||||
|
||||
>>> [x for x in range(1,10000) if k(x)]
|
||||
[1, 9, 45, 55, 99, 297, 703, 999, 2223, 2728, 4879, 4950, 5050, 5292, 7272, 7777, 9999]
|
||||
>>> len([x for x in range(1,1000000) if k(x)])
|
||||
54
|
||||
>>>
|
||||
29
Task/Kaprekar-numbers/Python/kaprekar-numbers-2.py
Normal file
29
Task/Kaprekar-numbers/Python/kaprekar-numbers-2.py
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
def encode(n, base):
|
||||
result = ""
|
||||
while n:
|
||||
n, d = divmod(n, base)
|
||||
if d < 10:
|
||||
result += str(d)
|
||||
else:
|
||||
result += chr(d - 10 + ord("a"))
|
||||
return result[::-1]
|
||||
def Kaprekar(n, base):
|
||||
if n == '1':
|
||||
return True
|
||||
sq = encode((int(n, base)**2), base)
|
||||
for i in range(1,len(sq)):
|
||||
if (int(sq[:i], base) + int(sq[i:], base) == int(n, base)) and (int(sq[:i], base) > 0) and (int(sq[i:], base)>0):
|
||||
return True
|
||||
return False
|
||||
def Find(m, n, base):
|
||||
return [encode(i, base) for i in range(m,n+1) if Kaprekar(encode(i, base), base)]
|
||||
|
||||
m = int(raw_input('Where to start?\n'))
|
||||
n = int(raw_input('Where to stop?\n'))
|
||||
base = int(raw_input('Enter base:'))
|
||||
KNumbers = Find(m, n, base)
|
||||
for i in KNumbers:
|
||||
print i
|
||||
print 'The number of Kaprekar Numbers found are',
|
||||
print len(KNumbers)
|
||||
raw_input()
|
||||
11
Task/Kaprekar-numbers/Python/kaprekar-numbers-3.py
Normal file
11
Task/Kaprekar-numbers/Python/kaprekar-numbers-3.py
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
Base = 10
|
||||
N = 6
|
||||
Paddy_cnt = 1
|
||||
for n in range(N):
|
||||
for V in CastOut(Base,Start=Base**n,End=Base**(n+1)):
|
||||
for B in range(n+1,n*2+2):
|
||||
x,y = divmod(V*V,Base**B)
|
||||
if V == x+y and 0<y:
|
||||
print('{1}: {0}'.format(V, Paddy_cnt))
|
||||
Paddy_cnt += 1
|
||||
break
|
||||
10
Task/Kaprekar-numbers/Python/kaprekar-numbers-4.py
Normal file
10
Task/Kaprekar-numbers/Python/kaprekar-numbers-4.py
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
Base = 16
|
||||
N = 4
|
||||
Paddy_cnt = 1
|
||||
for V in CastOut(Base,Start=1,End=Base**N):
|
||||
for B in range(1,N*2-1):
|
||||
x,y = divmod(V*V,Base**B)
|
||||
if V == x+y and 0<y:
|
||||
print('{1}: {0:x}'.format(V, Paddy_cnt))
|
||||
Paddy_cnt += 1
|
||||
break
|
||||
Loading…
Add table
Add a link
Reference in a new issue