FizzBuzz

  • Austin C Bullock

Division game

The following program demonstrates the use of aprint for printing an array of Strings containing values of the first 100 FizzBuzz numbers:

program main
    use io_fortran_lib, only: String, aprint
    implicit none (type, external)

    integer, allocatable :: nums(:)
    integer :: i

    nums = [(i, i = 1, 100)]

    call aprint( FizzBuzz(nums) )

    contains
    pure elemental type(String) function FizzBuzz(number) result(res)
        integer, intent(in) :: number

        if ( mod(number,5) /= 0 ) then
            if ( mod(number,3) /= 0 ) then
                res = String(number)
            else
                res = String("fizz")
            end if
        else
            if ( mod(number,3) /= 0 ) then
                res = String("buzz")
            else
                res = String("fizzbuzz")
            end if
        end if
    end function FizzBuzz
end program main