/求出 p,q
#include
#include
void main()
{
int n=3026533,i,p,q;
for (i=2;i<=sqrt(n);i++)
if(n%i==0)
{p=i;
q=n/p;
printf("%d %d\n",p,q);
}
}
#include
//求出c1,c2,d1,d2
void main()
{
int p=1511,p1,p2,q=2003,c=152702,c1,c2,d=2015347,d1,d2,e=3,m1,m2;
c1=c%p;
c2=c%q;
d1=d%(p-1);
d2=d%(q-1);
printf("c1:%d\nc2:%d\nd1:%d\nd2:%d\n",c1,c2,d1,d2);
}
//求出m1 ,m2
#include
void main(int x,int r,int n)
{//int x=91,r=527,n=1511;
printf("输入三个数:\n");
scanf("%d%d%d",&x,&r,&n);
int i=0,temp,a[30],first=1;
for(;i<30;i++)
{temp=r%2;
a[i]=temp;
r=r/2;
if(r==0)
break;
}
for(;i>=0;i--)
{
first=first*first %n;
if(a[i]==1)
first=(first*x)%n;
}
printf("%d\n",first);
}
//求出m
#include
void main()
{
int m1=1074,m2=1819,p=1511,q=2003,i,m;
int M1,M2,M11,M22;
M1=2003;
M2=1511;
for(i=0;i
if(M1*i%M2==1)
M11=i;
for(i=0;i
if(M2*i%M1==1)
M22=i;
printf("M11:%d\nM22:%d\n",M11,M22);
m=(M1*M11*m1+M2*M22*m2)026533;
printf("m:%d\n",m);
}