hdu 1395 2^x mod n = 1(欧拉定理)

思路:a^phi(m) = 1 mod m 当且仅当 gcd(a,m) = 1

题目a = 2,所以m不能为偶数,否则无解

由于数据弱,故可以暴力过

非暴力方法


#include <stdio.h>
//#include
int main() {
    int i,n,p,q;
    while(scanf("%u",&n)==1) {
        if(n%2==0||n<2) {
            printf("2^? mod %d = 1\n",n);
            continue;
        }
        q=2;
        for(p=1;; p++) {
            q*=2;
            q%=n;
            if(q==1)
                break;
        }
        printf("2^%d mod %d = 1\n",p+1,n);
    }
    return 0;
}


你可能感兴趣的:(hdu 1395 2^x mod n = 1(欧拉定理))