program main implicit none integer*8::N,a,b,c,abc,ab,bc,ca,tmp read *,N read *,a,b,c tmp = lcd(a,b) abc = N/lcd(tmp,c) ab = N/tmp bc = N/lcd(b,c) ca = N/lcd(c,a) a = N/a b = N/b c = N/c print '(i0)', a+b+c-(ab+bc+ca)+abc contains function lcd(a,b) result(c) integer*8,intent(in)::a,b integer*8::c c = (a*b)/gcd(a,b) end function lcd recursive function gcd(a,b) result(c) integer*8::a,b,c if(b.eq.0) then c = a else c = gcd(b,MOD(a,b)) end if end function gcd end program main