乐乐是一个聪明而又勤奋好学的孩子。他总喜欢探求事物的规律。一天,他突然对数的正整数次幂产生了兴趣。
众所周知,2的正整数次幂最后一位数总是不断的在重复2,4,8,6,2,4,8,6……我们说2的正整数次幂最后一位的循环长度是4(实际上4的倍数都可以说是循环长度,但我们只考虑最小的循环长度)。类似的,其余的数字的正整数次幂最后一位数也有类似的循环现象。
这时乐乐的问题就出来了:是不是只有最后一位才有这样的循环呢?对于一个整数n的正整数次幂来说,它的后k位是否会发生循环?如果循环的话,循环长度是多少呢?
注意:
1.如果n的某个正整数次幂的位数不足k,那么不足的高位看做是0。
2.如果循环长度是L,那么说明对于任意的正整数a,n的a次幂和a + L次幂的最后k位都相同。
如果知道后I位的循环节为len 那么后i+1位的循环节,就是X^len,X^2*len,X^3*len…直到和X相同,就是后i+1位循环节,需要高精度
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
const int maxn = 1e4;
char s[maxn];
int k;
struct BigInt{
int len,a[maxn];
void clear(){
len = 0;memset(a,0,sizeof(a));
}
void read(char *S){
clear();
len = strlen(s);