poj 2115 扩展欧几里德
来源:互联网 发布:推荐淘宝上的韩国泡菜 编辑:程序博客网 时间:2024/06/06 08:31
#include<stdio.h>
#include<string.h>
#define max 32
typedef long long LL;
LL pow2[max+5];
void init(){
for(int i=1;i<=max;i++){
pow2[i]=1LL<<i;
}
}
LL a,b,c,k;
void gcd(LL a,LL b,LL& d,LL& x,LL& y){
if(!b){
d=a; x=1; y=0; return;
}
gcd(b,a%b,d,y,x); y-=(a/b)*x;
}
int main(){
init();
while(scanf("%lld%lld%lld%lld",&a,&b,&c,&k)&&a+b+c+k!=0){
LL d,x,y;
if(a==b){
puts("0"); continue;
}
gcd(c,pow2[k],d,x,y);
if((b-a)%d){
puts("FOREVER");
}
else{
x=x*(b-a)/d;
x=(x%(pow2[k]/d)+(pow2[k]/d))%(pow2[k]/d);
printf("%lld\n",x);
}
}
}
#include<string.h>
#define max 32
typedef long long LL;
LL pow2[max+5];
void init(){
for(int i=1;i<=max;i++){
pow2[i]=1LL<<i;
}
}
LL a,b,c,k;
void gcd(LL a,LL b,LL& d,LL& x,LL& y){
if(!b){
d=a; x=1; y=0; return;
}
gcd(b,a%b,d,y,x); y-=(a/b)*x;
}
int main(){
init();
while(scanf("%lld%lld%lld%lld",&a,&b,&c,&k)&&a+b+c+k!=0){
LL d,x,y;
if(a==b){
puts("0"); continue;
}
gcd(c,pow2[k],d,x,y);
if((b-a)%d){
puts("FOREVER");
}
else{
x=x*(b-a)/d;
x=(x%(pow2[k]/d)+(pow2[k]/d))%(pow2[k]/d);
printf("%lld\n",x);
}
}
}
- poj 2115 扩展欧几里德
- poj-2115-C Looooops-扩展欧几里德
- poj 2115 C Looooops 扩展欧几里德算法
- POJ 2115 C Looooops(扩展欧几里德)
- poj 2115||zoj2305(扩展欧几里德)
- poj-2115-C Looooops-扩展欧几里德
- poj-2115-C Looooops-扩展欧几里德
- POJ 2115-C Looooops(扩展欧几里德)
- POJ 2115- C Looooops(扩展欧几里德)
- 【POJ 2115】 C Looooops (扩展欧几里德)
- POJ 2115(扩展欧几里德定理)
- POJ-2115-C Looooops-扩展欧几里德算法
- POJ 2115-C Looooops-扩展欧几里德算法
- POJ 2115 C Looooops(扩展欧几里德)
- poj 2115 C Looooops(扩展欧几里德)
- poj 2115 C Looooops (扩展欧几里德)
- POJ 2115 Looooops 扩展欧几里德 Java
- poj 2115 C Looooops(扩展欧几里德算法)
- hdu 4277 USACO ORZ (暴力+set容器判重)
- 排序算法 总结&思考(二)
- 128M vps上部署django应用的步骤
- HDU 4609 快速傅里叶变换
- 1012 约瑟夫变形
- poj 2115 扩展欧几里德
- 1013 Counterfeit Dollar
- as3完美解决单击事件、双击事件问题
- 1014 Dividing DFS
- 如何下载Latex缺少的宏包
- 1014 Dividing 多重背包
- 1016 Numbers That Count 模拟
- 面对百度原创性质量标准算法的一些策略
- 1017 Packets 贪心