HDU 5666 Segment(大数+gcd)
发布时间:2021-05-28 18:29:52 所属栏目:大数据 来源:网络整理
导读:大意:给定一个直线方程x+y=p;(p为质数)求在第一象限围城的区域里格子的点数有多少。 思路:一条直线上的格子点数为gcd(x,y),那么我们可以直接用三角形上加内的总点数减去在直线上的点数那么在直线上的点数为gcd(x,y)=gcd(x,y-x)(yx)=gcd(x,p-y)=gcd(x,p)=
|
大意:给定一个直线方程x+y=p;(p为质数)求在第一象限围城的区域里格子的点数有多少。 思路:一条直线上的格子点数为gcd(x,y),那么我们可以直接用三角形上加内的总点数减去在直线上的点数那么在直线上的点数为gcd(x,y)=gcd(x,y-x)(y>x)=gcd(x,p-y)=gcd(x,p)=1所以直线上的点数为0。 import java.util.*;
import java.math.*;
public class Main{
public static void main(String[] args){
Scanner cin = new Scanner(System.in);
BigInteger a,b,c;
int d;
d = cin.nextInt();
while(d-->0){
a=cin.nextBigInteger();
c=a;
b=cin.nextBigInteger();
a=a.subtract(BigInteger.valueOf(1)) ;
c=c.subtract(BigInteger.valueOf(2)) ;
a=a.multiply(c);
a=a.divide(BigInteger.valueOf(2));
a=a.mod(b);
System.out.println( a.mod(b));
}
cin.close();
}
}
(编辑:ASP站长) 【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。 |
相关内容
未处理完善
-
无相关信息
最新更新


