Advertisement
jukaukor

kaprekar4.py

Jul 10th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. # 297^2 = 88209 --> 88 + 209 = 297
  2. # Python program idea from rosettacode.org
  3. # Not elegant math, only brutal string handling...;-)
  4. # Juhani Kaukoranta 10.7.2018
  5. #
  6. import time
  7. minvalue = int(input("anna Kaprekar-lukujen tulostusvälin alaraja "))
  8. maxvalue = int(input("anna Kaprekar-lukujen tulostusvälin yläraja "))
  9. time0 = time.perf_counter()
  10. for x in range(minvalue,maxvalue):
  11. # Kaikilla Kaprekar-luvuilla luvun ja sen neliön mod 9 on sama
  12. # On muitakin lukuja, joilla on sama ominaisuus, mutta tämä ehto
  13. # rajoittaa merkittävästi tutkittavaa lukujoukkoa
  14. if (x*(x-1)) % 9 == 0 :
  15. n2 = str(x**2)
  16. for i in range(len(n2)):
  17. # a on x:n neliön alkuosa, b on x:n neliön loppuosa, x itse luku
  18. # tutkitaan onko luku x neliönsä alkuosan ja loppuosan summa
  19. a, b = int(n2[:i] or 0), int(n2[i:])
  20. if b and a + b == x:
  21. print(x,"^2 = ",n2,",",a,"+",b," = ",x)
  22. time1 = time.perf_counter()
  23. print("Aikaa kului ",time1-time0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement