mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages
※2018年9月15日より非力な環境でサーバを運用しているため、各ページの表示に時間がかかる場合があります。ご了承ください。(改良の予定あり)

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Fortran - 最大公約数の計算!

[ プログラミング, 数学 ] [ Fortran ]

こんばんは。

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

0. 前提条件

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

1. ソースコードの作成

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

1
$ gfortran -o gcd gcd.f95

3. 動作確認

1
2
$ ./gcd
          12

以上、

プログラミング, 数学 Fortran



« Fortran - 行列とベクトルの積の計算! Fortran - 階乗の計算! »

Comments