! Napier number PROGRAM ex6_5 IMPLICIT NONE INTEGER :: k, max, m, n, r, j INTEGER, ALLOCATABLE :: keta(:) ! input the digits PRINT '(1X,A)', 'How many digits do you want to calculate ?' READ *, k ALLOCATE( keta(k) ) keta = 0 ! finding upper limit for m max = k * LOG( 10.0E0 ) ! main loop DO m = max, 2, -1 r = 1 DO n = 1, k j = 10 * r + keta(n) keta(n) = j / m r = j - m * keta(n) ! 剰りを繰り越していく END DO END DO PRINT '(//" e = 2.", 10(1X, 5I1)/(7X, 10(1X, 5I1)))', keta END PROGRAM ex6_5