`
carmark
  • 浏览: 157268 次
  • 性别: Icon_minigender_1
  • 来自: 大连->北京
社区版块
存档分类
最新评论

1006 Biorhythms

阅读更多
#include<stdio.h>    
#define r1 23    
#define r2 28    
#define r3 33    
int gcd(int a,int b){    
     int t1 = a,t2 = b,t;    
     while(a % b != 0){    
         t = a%b;    
         a = b;    
         b = t;    
     }    
     return t1 / b * t2;    
}    
int computeRN(int a,int b,int r) {    
    int t,i;    
    t = gcd(a,b);    
    if(t % r == 1) {    
        return t;    
    } else {    
        for(i = 2;;i++)    
            if(i * t % r == 1)    
                return i * t;    
    }    
        
}    
int main() {    
    int p,e,i,d,day,time = 1;    
    int RD,R1,R2,R3;    
    while(scanf("%d %d %d %d",&p,&e,&i,&d) != EOF) {    
        if(p == -1) break;    
        RD = gcd(gcd(r1,r2),r3);    
        R1 = computeRN(r2,r3,r1);    
        R2 = computeRN(r1,r3,r2);    
        R3 = computeRN(r1,r2,r3);    
        day = (p * R1 + e * R2 + i * R3 + RD - d) % RD;    
        day = day ? day : RD;    
        printf("Case %d: the next triple peak occurs in %d days.\n",time++,day);    
   
    }    
}   
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics