假设把所有香肠接在一起想象成一根大香肠 总长度为 \(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) \]