Fortran - 最大公約数の計算!

Updated:


Fortran 95 で最大公約数の計算をしてみました。(単純なアルゴリズムですが)

0. 前提条件

  • LMDE 3 (Linux Mint Debian Edition 3; 64bit) での作業を想定。
  • GCC 6.3.0 (GFortran 6.3.0) でのコンパイルを想定。

1. ソースコードの作成

  • 単なる作成例なので、2つの整数はソースコード内に直接記述している。(必要であれば、適宜書き換えること)
  • ここで重要なのは、内部副プログラムの gcd 関数。

File: gcd.f95

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
!****************************************************
! 最大公約数計算
!
! date          name            version
! 2018.08.20    mk-mode.com     1.00 新規作成
!
! Copyright(C) 2018 mk-mode.com All Rights Reserved.
!****************************************************
!
program gcd_main
  implicit none

  write (*,*) gcd(144, 300)

  stop
contains
  ! 最大公約数計算
  !
  ! :param  integer a
  ! :param  integer b
  ! :return integer gcc
  integer function gcd(a, b)
    implicit none
    integer, intent(IN) :: a, b
    integer :: l, m, n

    m = a
    n = b

    do
      l = mod(m, n)
      if (l == 0) exit
      m = n
      n = l
    end do

    gcd = n

    return
  end function gcd
end program gcd_main

2. ソースコードのコンパイル

$ gfortran -o gcd gcd.f95

3. 動作確認

$ ./gcd
          12

以上、





 

Sponsored Link

 

Comments