编程高手看看这个题目

来源:百度知道 编辑:UC知道 时间:2024/07/05 00:12:31
编写程序求最小整数m,n(0<n<m)为何值时,1989的m次方与1989的n次方最后三位数字相同...

要求用C

#include <stdio.h>
#include <math.h>

int main()
{
const int BASE = 989;

int m = 0;
int n = 0;
int temp1 = 1;
int temp2 = 1;

for ( m = 1; m < 3; m++ )
{
temp1 = temp1 * BASE % 1000;
n = m + 1;
temp2 = temp1;
while (1)
{
temp2 = temp2 * BASE % 1000;
if ( temp1 == temp2 )
{
break;
}
n++;
}
printf( "%d %d\n", m, n );
}

return 0;
}

结果:
1 51
2 52

我估计差不多吧。

God,呵呵,我m,n写反了,你把程序里m和n替换一下就好。

#include<iostream>
using namespace std;
int main()
{
int m,n;
int a,b;
a=1;
for(n=1;n<10000;n++)
{
a*=1989;
b=a;
for(m=n+1;m<1000;m++)
{
b*=1989;
if((b-a)%1000==0) break;
}
if((b-a)%1000==0) break;
}
cout<<m<<" "