소스 파일명: testWhile.jl

  1. #  Filename: testWhile.jl
  2. #
  3. #  Purpose:  Example using the while loop syntax
  4. #                while .... end
  5. #
  6. # Execute: julia testWhile.jl -200 300
  7. #
  8. # 사용법 표시
  9. function printUsage()
  10.     println("Using: julia testWhile.jl [integer1] [integer2]")
  11.     println("This finds the greatest common divisor of the given two integers.")
  12. end
  13. if length(ARGS) != 2
  14.     printUsage()
  15.     exit(1)
  16. end
  17. # --------------------------------------
  18. # 명령행 인자의 두 스트링을 가져와서
  19. # 정수 타입으로 변환하여
  20. # 변수 val1과 val2에 저장한다.
  21. val1 = int64(parse_int(ARGS[1]))
  22. val2 = int64(parse_int(ARGS[2]))
  23. # a는 |val1|, |val2| 중 큰 값
  24. a = abs(val1)
  25. b = abs(val2)
  26. if a < b
  27.     a = abs(val2)
  28.     b = abs(val1)
  29. end
  30. if b == 0
  31.     @printf("GCD(%d, %d) = %d\n", val1, val2, a)
  32.     exit(0)
  33. end
  34. # --------------------------------------
  35. # Euclidean 알고리즘의 시작
  36. #
  37. # a를 b로 나누어 몫은 q에, 나머지는 r에 저장
  38. q = a / b
  39. r = a % b
  40. # --------------------------------------
  41. # Euclidean 알고리즘의 반복 (나머지 r이 0이 될 때 까지)
  42. while r != 0
  43.     a = b
  44.     b = r
  45.     q = a / b
  46.     r = a % b
  47. end
  48. # 나머지가 0이면 그 때 나눈 수(제수) b가 최대공약수(GCD)이다.
  49. gcd = b
  50. # 최대공약수(GCD)를 출력한다.
  51. @printf("GCD(%d, %d) = %d\n", val1, val2, gcd)

 


실행:

Command> julia testWhile.jl
Using: julia testWhile.jl [integer1] [integer2]
This finds the greatest common divisor of the given two integers.

Command> julia testWhile.jl -200 300
GCD(-200, 300) = 100

Command> julia testWhile.jl -200 0
GCD(-200, 0) = 200

Command> julia testWhile.jl 125 100
GCD(125, 100) = 25

Command> julia testWhile.jl 23 25
GCD(23, 25) = 1



Posted by Scripter
,