jukaukor

Summatlevylle.jl

Apr 24th, 2020
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. # aitojen jakajien summat levylle
  2. # Summatlevylle.jl
  3. using DelimitedFiles
  4. function properdivisorsum(n)
  5. n_original = n
  6. result = 1
  7. for i in 2 : Int(trunc(sqrt(n)))+1
  8. curr_sum = 1
  9. curr_term = 1
  10. while n % i == 0
  11. n = div(n,i)
  12. curr_term = curr_term * i
  13. curr_sum += curr_term
  14. end
  15. result = result * curr_sum
  16. end
  17. # This condition is to handle the
  18. # case when original n is a prime number
  19. # greater than 2
  20. if n > 2
  21. result = result * (1 + n)
  22. end
  23. return (result - n_original)
  24. end
  25.  
  26. m = 100000000
  27. divsum = Vector{Int64}(undef,m);
  28.  
  29. time0 = time()
  30. for i in 1 : m
  31. divsum[i] = properdivisorsum(i)
  32. end;
  33. time1 = time()
  34. println("Summien ",m, "kpl laskentaan kului aikaa ",time1-time0, "sekuntia")
  35. # kirjoitetaan summat levylle
  36. time0 = time()
  37. open("juliasummat.dat", "w") do io writedlm(io,divsum) end
  38. time1 = time()
  39. println("Summien kirjoittamiseen levylle kului aikaa ",time1-time0," sekuntia")
Advertisement
Add Comment
Please, Sign In to add comment