jukaukor

AmicablePairsFromDiskSummat.jl

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