PROGRAM Basamak
!-------------------------------------------------------
! 17prg01.f95
! Bir pozitif tamsayının basamakları ve tersi.
!-------------------------------------------------------
IMPLICIT NONE
INTEGER :: M, B, N, K, J, Sayi

 PRINT *,"Pozitif bir tam sayı girin:"
 READ *,Sayi

 M = Sayi ! sayının kendisi
 N = 0    ! tersi
 K = 0    ! basamak sayısı

 PRINT *
 PRINT *,"Her basamaktaki rakam: "
 DO WHILE( M>0 )

    B = MOD(M,10)  ! B birler basamağı
    M = M / 10     ! Sayiyi 10'a böl (birler basamağnı at)
    N = 10*N + B   ! ve N sayınına ekle
    K = K + 1      ! Basamak sayısını hesapla
    J = 10**(K-1)  ! basamak değeri

    ! Her bir basamak değeri ve basamağı ekrana yaz
    PRINT '(I6," ler basamağı ",I3)',J, B

 END DO

 PRINT *
 PRINT *,"Basamak Sayısı : ",K
 PRINT *,"Sayının Tersi  : ",N

END PROGRAM