jukaukor

HeronianIntegerTriangles_Gupta.jl

Jan 29th, 2020
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. # Julia-program HeronianIntegerTriangles.jl
  2. # Heronin primitiiviset kolmiot
  3. # Sivut, ala ja sisäänpiirrettyn ympyrän säde kokonaislukuja
  4. # Algorithm Brahmagupta (598-668 A.D.)
  5. # Juhani Kaukoranta 27.01.2020
  6. max = 10
  7.  
  8. function HeronianTriplets(max)
  9. Heron = [0 0 0 0 0] # Heronin kolmioiden aloitus
  10. for k in 1 : max
  11. for n in 1 : max
  12. for m in 1 : max
  13. if m >= n && m*n > k^2 && gcd(gcd(m,n),k)==1 && k^2 > m^2*n/(2*m+n)
  14. a = n*(m^2 + k^2)
  15. b = m*(n^2 + k^2)
  16. c = (m + n)*(m*n - k^2)
  17. q = gcd(a,gcd(b,c))
  18. #a = div(a,q)
  19. #b = div(b,q)
  20. #c = div(c,q)
  21. piiri = a + b +c
  22. #area = div(k*m*n*(m+n)*(m*n - k^2),q^2)
  23. area = k*m*n*(m+n)*(m*n - k^2)
  24. kolmio =[a b c piiri area]
  25. if q == 1
  26. Heron =vcat(Heron,kolmio)
  27. end
  28. end
  29. end
  30. end
  31. end
  32. return Heron
  33. end
  34. A = HeronianTriplets(max)
  35. display(A[sortperm(A[:, 5]), :]) # lajitellaan pinta-alan mukaan
Advertisement
Add Comment
Please, Sign In to add comment