sgu106——求解二元一次不定式(扩展欧几里得

你有这么一个方程ax+by+c=0,现在给你a,b,c,再给定l1,r1,l2,r2,询问有几组整数解使得l1<=x<=r1,l2<=y<=r2。

Input

输入依次为a,b,c,l1,r1,l2,r2,所有输入都是整数,且他们的绝对值不大于108

Output

输出一个答案

Sample Input

1 1 -3
0 4
0 4

Sample Output

4

不好想的一道题,不难想到用扩展欧几里得求特解后再求通解,特殊情况处理一下。

搬来别人的题解,感觉讲的太好了!!!!

 给出a,b,c,x1,x2,y1,y2,求满足ax+by+c=0,且x∈[x1,x2],y∈[y1,y2]的整数解个数。 
 对于解二元一次不定方程,容易想到利用扩展欧几里得求出一组可行解后找到通解,
 下面来介绍一下欧几里得以及扩展欧几里得。

关于求解二元一次不定方程ax+by=c
    首先,如果c不是gcd(a,b)的倍数,方程显然无解。
扩展欧几里得求解的是ax+by=gcd(a,b)=1的可行解,
但是题目中并没有说c与a,b互质之类的条件,所以需要在开始时两边同时除以gcd(a,b)。
设d=gcd(a,b)
设a'=a/d,b'=b/d,c'=c/d,
则下面需要求解a'x+b'y=c'的整数解,而gcd(a',b')=1,
则我们只需求a'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值