Sunday, February 27, 2011

374 - Big Mod


#include<stdio.h>
int main()
{
    register long r,b,p,m,i,c,n;
    long mod[50000];
    //freopen("in.txt","r",stdin);
    while(scanf("%ld%ld%ld",&b,&p,&m)==3)
    {
        if(!(b%m))n=0;
        else if(!p)n=1;
        else
        {
            c=1,r=mod[0]=b=b%m;
            do{
                r=(r*b)%m;
                mod[c++]=r;
            }while((r^mod[0]));
            c--;
            n=mod[p%c-1];
        }
        printf("%ld\n",n);
    }
    return 0;
}

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.