题目描述 Description
对于给定的p,编写程序求最小正整数m,n(0<n<m)为何值时,pm与pn的最后三位数字相同。
输入描述 Input Description
一个正整数p(100≤p≤9999)
输出描述 Output Description
一行,最小的m和n,m和n用空格隔开。如有多组,输出最小的m那组。
样例输入 Sample Input
100
样例输出 Sample Output
3 2
#include<stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
int m=1000,f[1008]; //f 记录数据的后三位
int main()
{
int p,ans,k;
while (cin>>p)
{
ans=0;
memset(f, 0, sizeof(f));
k=p;
p%=m;
while (!f[p]) //出现了重复 退出
{
f[p]=++ans;
p*=k;
p%=m;
}
cout<<++ans<<" "<<f[p]<<endl;
}
return 0;
}