#44423: 分了好多狀況


1257891 (1257891)

學校 : 國立臺灣師範大學附屬高級中學
編號 : 245193
來源 : [122.116.158.21]
最後登入時間 :
2025-01-22 17:45:25
a810. 1. 倍數關係 -- 102學年度高雄市資訊學科能力競賽複賽 | From: [114.35.99.27] | 發表日期 : 2024-12-04 00:33

from math import gcd,ceil
a,b,c,d=map(int,input().split())
if c==0 or d==0:
    if b>0 and a<0:
        print(1)
    else:
        print(0)
else:
    c=abs(c)
    d=abs(d)
    l=abs(c*d)//gcd(c,d)
    ans=0
    if a>0 and b>0:
        ans+=(b//c)-ceil(a/c)+1
        ans+=(b//d)-ceil(a/d)+1
        ans-=(b//l)-ceil(a/l)+1
    if b>0 and a<0:
        ans+=(b//c)+abs(a)//c+1
        ans+=(b//d)+abs(a)//d+1
        ans-=(b//l)+abs(a)//l+1
    if a<0 and b<0:
        ans+=(abs(a)//c)-ceil(abs(b)/c)+1
        ans+=(abs(a)//d)-ceil(abs(b)/d)+1
        ans-=(abs(a)//l)-ceil(abs(b)/l)+1
    if a<0 and b==0:
        ans+=(abs(a)//c)+1
        ans+=(abs(a)//d)+1
        ans-=(abs(a)//l)+1
    if a==0 and b>0:
        ans+=(b//c)+1
        ans+=(b//d)+1
        ans-=(b//l)+1
    print(ans)

 
#44425: Re: 分了好多狀況


sam851015@gmail.com (多挖鼻孔有益身心健康)

學校 : 臺中市立惠文高級中學
編號 : 277705
來源 : [123.192.228.253]
最後登入時間 :
2025-03-11 12:39:29
a810. 1. 倍數關係 -- 102學年度高雄市資訊學科能力競賽複賽 | From: [123.192.228.253] | 發表日期 : 2024-12-04 11:30

感謝,看懂了,這就是我沒考慮到的條件

 

只有 0 可以是 0 的倍數,0 無論乘上多少都是 0,不會變成其他數字

故 0 的倍數只有一個,那就是 0

 

 

 
ZeroJudge Forum