An Armstrong number of three digits is an integer such that the sum of the cubes of its digits is equal to the number itself. For example, 371 is an Armstrong number since 3**3 + 7**3 + 1**3 = 371.
Write a program to find all Armstrong number in the range of 0 and 999.
Click here to download this program.! --------------------------------------------------------------- ! This program computes all Armstrong numbers in the range of ! 0 and 999. An Armstrong number is a number such that the sum ! of its digits raised to the third power is equal to the number ! itself. For example, 371 is an Armstrong number, since ! 3**3 + 7**3 + 1**3 = 371. ! --------------------------------------------------------------- PROGRAM ArmstrongNumber IMPLICIT NONE INTEGER :: a, b, c ! the three digits INTEGER :: abc, a3b3c3 ! the number and its cubic sum INTEGER :: Count ! a counter Count = 0 DO a = 0, 9 ! for the left most digit DO b = 0, 9 ! for the middle digit DO c = 0, 9 ! for the right most digit abc = a*100 + b*10 + c ! the number a3b3c3 = a**3 + b**3 + c**3 ! the sum of cubes IF (abc == a3b3c3) THEN ! if they are equal Count = Count + 1 ! count and display it WRITE(*,*) 'Armstrong number ', Count, ': ', abc END IF END DO END DO END DO END PROGRAM ArmstrongNumber
Armstrong number 1: 0 Armstrong number 2: 1 Armstrong number 3: 153 Armstrong number 4: 370 Armstrong number 5: 371 Armstrong number 6: 407
Therefore, if a, b and c are the left-most, the middle and the right-most digits, the above discussion is formalized with the following three nested DO-loops:
DO a = 0, 9 DO b = 0, 9 DO c = 0, 9 ... the number is abc ..... END DO END DO END DO