【度小滿2018-09-26線上筆試】ONU
阿新 • • 發佈:2018-12-07
題目描述
ONU是一種新型桌遊,一副牌有若干種花色,總共N張,且每種花色的牌的張數一樣。現在每次給定N,M,表示這幅總共N張的牌至少有M種花色,請問這副牌可能的花色有多少種?
輸入
共一行,兩個整數N,M。(1<=N<=1012,0<=M<=1012)
輸出
一個整數,表示可能的花色種數。
樣例輸入
30
樣例輸出
2
Hint
可能有15或者30種花色,所以總共兩種花色數。
Python程式碼
# Summary: ONU
# Author: Amusi
# Date: 2018-09-26
# Reference: https://blog.csdn.net/yong_ss/article/details/79356836
n,m = map(int, input("").split())
def process(m, n):
count = 0
i = 1
while i*i<n:
if 0==n%i:
if i<m and (n//i)>m:
count+=1
if i>m and (n//i)>m:
count+=2
if i==m and (n//i)==m:
count+=1
if i==m and (n//i)!=m:
count+=2
i+=1
if(i*i==n):
count+=1
return count
print(process(m, n))