「刷题」 关于线段上的整点个数

  今天学长说了个结论是 $ num=gcd(x_1-x_2,y_1-y_2) $

现在我试着证明一下。

证明:

  令 $ x=x_1-x_2 , y=y_1-y_2 $

  令 $ d=gcd(x,y) $

  $ x=pd , y=qd $

  令直线上某一点为$ (a,h) $

  由相似三角形可得:

  $ \frac{a}{x} = \frac{h}{y} $

  $ a=\frac{hx}{y}=\frac{hpd}{qd}=\frac{hp}{q} $

  那么$ ans $也就是对于$ 1<=h<=y $来说,有多少个$ a $是整数了。

  即:

  $ ans=\sum \limits_{i=1}^y [q|ip] $

  $ gcd(q,p)==1 $

  $ ans=\sum \limits_{i=1}^y [q|i] $

  $    =\sum \limits_{i=1}^{qd} [q|i] $

  $    =\sum \limits_{i=1}^{d} $

  $    =d $

  $    =gcd(x,y) $

证毕。

posted @ 2019-07-23 17:38  Lrefrain  阅读(377)  评论(5编辑  收藏  举报