#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long LL;
LL gcdEx(LL a,LL b,LL& x,LL& y)
{ //求ax+by=gcd(a,b) 的整数解 返回gcd(a,b); if(b==0) {x=1; y=0; return a;}LL x1,y1;int gcd=gcdEx(b,a%b,x1,y1);x=y1;y=x1-a/b*y1;return gcd;
}
int main()
{LL A,B,C,K,x,y,d,k,s,ans;while(cin>>A>>B>>C>>K){if(A==0&&B==0&&C==0&&K==0) break;d=gcdEx(C,(1LL<<K),x,y); //要把1转化为long long 类型,不然会溢出 if((B-A)%d){cout<<"FOREVER"<<endl; continue;}k=(B-A)/d;ans=k*x; s=(1LL<<K)/d;cout<<(ans%s+s)%s<<endl;}return 0;
}
详细解决方案
POJ 2115 C Looooops (扩展欧几里得算法)
热度:15 发布时间:2023-09-23 08:33:35.0
相关解决方案
- 数论基础(1)-欧几里得算法
- POJ 2115 C Looooops (扩展欧几里得算法)
- 欧几里得算法(扩展欧几里得、欧拉定理、费马小定理)
- 欧几里得算法(求最大公因子)及扩展欧几里得(求乘法逆元)
- 欧几里得算法--最大公约数
- HDOJ 2115 I Love This Game
- CSU 2115 Multiplication Game (素数筛法)
- 数论-欧几里得算法(辗转相除法)
- 一元线性同余方程(扩展欧几里得算法,C Looooops)
- JavaScript 欧几里得算法/辗转相除法
- 欧几里得算法--计算最大公因数
- 辗转相除法(欧几里得算法)和拓展的欧几里得算法求模乘法逆元(自用)
- POJ 2115 C Looooops(扩展欧几里德)
- POJ - 2115 C Looooops(拓展欧几里得,解同余方程)
- 欧几里得算法(辗转相除法)——求最大公约数
- 欧几里得算法-辗转相除法
- poj-2115-C Looooops-扩展欧几里德
- 杭电ACM基础题(2114、2115、2123、2131、2132、2133、2135、2136、2137、2138)
- Problem E:C Looooops(扩展欧几里德)
- 【数学一本通 第一章】C Looooops [POJ 2115]
- poj 2115 C Looooops 扩展欧几里得
- 欧几里得算法 算最大公约数
- 欧几里得算法(辗转相除法)
- 数论 欧几里得算法
- 信息安全数学基础--整除--欧几里得算法/辗转相除法/更相减损术