program main implicit none integer*8::A,B,i,j,f,total=0 read *,A do i=0,2**5-1 f = f_product(i) do j=0,31 if(f.gt.A) exit f = f * 2 end do total = total + j end do print '(i0)', total-2 contains function f_product(N) result(prod) integer*8::F(0:4),N,i,prod data F/3_8,5_8,17_8,257_8,65537_8/ prod = 1 do i=0,4 if(BTEST(N,i).eqv..true.) prod = prod * F(i) end do end function f_product end program main