寻找X的值
题号:NC207192
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

已知一个数n,找到最小的x使2x次幂对n取余等于12^x mod n = 1)。

输入描述:

每行一个正整数,作为n的值。

输出描述:

如果最小的x存在,则打印一行结果形如2^x mod n = 1否则打印2^? mod n = 1。你需要用具体的数字代替上式中的x和n。
示例1

输入

复制
2

输出

复制
2^? mod 2 = 1
示例2

输入

复制
31

输出

复制
2^5 mod 31 = 1
示例3

输入

复制
123

输出

复制
2^20 mod 123 = 1

备注:

2