#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(扩展欧几里得)
最新推荐文章于 2021-05-12 09:35:20 发布
本文介绍了一个基于扩展欧几里得算法的应用实例,该算法用于求解线性同余方程组,并通过具体代码实现了解决特定问题的过程。通过对输入参数的处理,能够有效地找到满足条件的解。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Facefusion
AI应用
FaceFusion是全新一代AI换脸工具,无需安装,一键运行,可以完成去遮挡,高清化,卡通脸一键替换,并且Nvidia/AMD等显卡全平台支持

275

被折叠的 条评论
为什么被折叠?



