poj2115(扩展欧几里得)
2015-05-21 08:51
267 查看
#include <iostream> #include <cstdio> #include <cstring> using namespace std; typedef __int64 ll; ll exgcd(ll a,ll b,ll &x,ll &y) { ll d; if(b==0) { x=1;y=0; d=a; } else { d=exgcd(b,a%b,y,x); y-=(a/b)*x; } return d; } ll Abs(ll a) { if(a<0) return -a; return a; } int main() { //freopen("in.txt","r",stdin); ll a,b,c,k; while(scanf("%I64d%I64d%I64d%I64d",&a,&b,&c,&k),a||b||c||k) { ll x,y; k=(1ll<<k); ll d=exgcd(k,c,x,y); //这里的(x,y)为kx+cy=gcd(k,c)的解 if((b-a)%d==0) { ll e=(b-a)/d*y%k+k; cout<<e%(k/d)<<endl; } else cout<<"FOREVER"<<endl; } return 0; }
相关文章推荐
- poj2115(扩展欧几里得运用)
- POJ2115 C Looooops(扩展欧几里得)
- 【扩展欧几里得】poj2115 C Looooops
- POJ2115 扩展欧几里得
- POJ2115 C Looooops 模线性方程(扩展欧几里得)
- POJ2115:C Looooops(扩展欧几里得)
- POJ2115(扩展欧几里得)
- poj2115 C Looooops(扩展欧几里得)
- POJ2115 - C Looooops(扩展欧几里得)
- POJ2115 C Looooops[扩展欧几里得]
- HDU 1576 A/B 暴力也能过。扩展欧几里得
- POJ1061 青蛙的约会 扩展欧几里得
- 欧几里得扩展
- 扩展欧几里得 Poj2142
- 【数学/扩展欧几里得/线性求逆元】[Sdoi2008]沙拉公主的困惑
- POJ - 2115 C Looooops (扩展欧几里得)
- HDU 1576 A/B (扩展欧几里得)
- hdu 2669 Romantic 扩展欧几里得求线性方程模板题
- 扩展欧几里得
- POJ 1061 青蛙的约会 扩展欧几里得