jukaukor

AmicablePairsFromDiskSummat.jl

Apr 25th, 2020
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. # Ystäväparit
  2. # Julia-ohjelma Brute Force -menetelmällä
  3. # AmicablePairsFromDiskSummat.jl
  4. # Luetaan taulukoidut summat levyltä, lasketaan niiden avulla ystäväparit
  5. # Juhani Kaukoranta 24.4.2020
  6.  
  7. using DelimitedFiles
  8. # vektorien yms tallennuslevylle/lukeminen levyltä
  9. function Amicable_pairs()
  10. # ystäväparit, jotka < n
  11. # a ja b ovat ystäväpari (amicable numbers), jos
  12. # a = kokonaisluvun b tulontekijöiden summa
  13. # b = kokonaisluvun a tulotekijöiden summa
  14. # tulontekijat "proper divisors", itse luku ei ole mukana
  15. # taulukoidut summat valmiina levyllä
  16. #divsum = Array{Int64}(undef,n);
  17. # luetaan summat levyltä
  18. time0 = time()
  19. divsum = Int64.(readdlm("juliasummat.dat"))
  20. time1 = time()
  21. n = length(divsum)
  22. println("Summien ",n," kpl lukemiseen levylta kului aikaa ",time1-time0," sekuntia")
  23. maxn = maximum(divsum);
  24. m = div(n,4) # maksisumma noin n/4
  25. println("n = ",n)
  26. println("m = ",m)
  27. println("maksimisumma = ",maxn)
  28. println("Ystäväparit, jotka pienempiä kuin ", m)
  29. nro = 0 # laskuri
  30. time0 = time()
  31. for i in 2 : m
  32. j = divsum[i]
  33. if i < j && i == divsum[j]
  34. nro += 1
  35. println(nro,": ",i, " ",divsum[i])
  36. end
  37. end
  38. time1 = time()
  39. println("Ystäväparien laskentaa kului aikaa ",time1-time0," sekuntia")
  40. end
  41.  
  42.  
  43. time0 = time()
  44. Amicable_pairs()
  45. time1 = time()
  46. println("Kaikkeen aikaa kului yhteensä ",time1-time0," sekuntia")
Advertisement
Add Comment
Please, Sign In to add comment