K尾相等数

    xiaoxiao2021-11-29  28

    #include<iostream> using namespace std; int main() { int T,i,sum,k,ky,f; cin>>T; while(T--) { f=0; int a[1001]={0}; cin>>k; ky=1; if(k>999) { f=1; k%=1000; } for(i=1;i<1002;i++) { ky*=k; if(f==1||ky>999) { f=1; ky%=1000; if(a[ky]!=0) { sum=a[ky]+i; break; } else a[ky]=i; } } cout<<sum<<endl; } return 0; } 时间限制: 3000ms内存限制:  128000KB 64位整型:      Java 类名: 上一题  提交  运行结果  统计   讨论版  下一题 类型:  没有    添加 题目描述 输入一个自然数K(K>1),如果存在自然数M和N(M>N),使得K^M和K^N均大于等于1000,且他们的末尾三位数相等,则称M和N是一对“K尾相等数”。下面请编程求出M+N最小的K尾相等数。 输入 第一行包含一个正整数T,T< 10000,表示有T组数据; 随后有N行,每行包括一个整数K(K<2*10^10); 输出 对于输入的每个整数K,输出对应的M+N的最小值; 样例输入 1 2 样例输出 120 来源 NYOJ
    转载请注明原文地址: https://ju.6miu.com/read-678617.html

    最新回复(0)