假设把所有香肠接在一起想象成一根大香肠 总长度为 (A)
那不难想到,需要切(m-1)刀,则每隔(frac{A}{m})要切一刀,设(y=frac{A}{m})
设原来一根香肠长度为(x),(x=frac{A}{n}),(x)的倍数不用切,不能算在答案里
所以现在问题变成(m-1)减去 (x)的倍数和(y)的倍数重合的个数
(1)到(A)的正整数中,有多少数既是 (x) 的倍数,也是(y)的倍数.
很明显是(A)除以(x)和(y)的最大公倍数
下面是数学处理,根据定理:最大公倍数等于:
[frac{x*y}{gcd(x,y)}
]
其中 (gcd(x,y))是(x)和(y)最大公因子
代入(x)和(y)的值
[frac{frac{A^2}{n*m}}{gcd(frac{A}{n},frac{A}{m})}
]
上下同乘以(frac{n*m}{A})
[frac {A}{gcd(n,m)}
]
再用(A)除以最大公倍数
就是(gcd(n,m))
结果就是(m-1-gcd(n,m))
但是(A)也是(x)和(y)的倍数,最后一个位置(A)是不需要切的,所以上式子减多了一个,加上(1)
结果:
[m-gcd(n,m)
]