POJ3641 Pseudoprime numbers 快速幂

来源:互联网 发布:编程序的软件 编辑:程序博客网 时间:2024/04/29 23:31
        这题比较简单,用快速幂进行加速幂运算。
#include <stdio.h>#include <vector>#include <math.h>#include <string.h>#include <string>#include <iostream>#include <queue>#include <list>#include <algorithm>#include <stack>#include <map>#include<iostream>  #include<cstdio>  using namespace std;long long qpowmod(long long x, int n, int mod){long long res = 1;while (n > 0){if (n & 1){res *= x;res %= mod;}x *= x;x %= mod;n >>= 1;}return res;}bool isprime(int a){for (int i = 2; i *i <= a;i++){if (a % i == 0){return false;}}return true;}int main(){int p, a;#ifdef _DEBUGfreopen("d:\\in.txt", "r", stdin);#endifwhile (scanf("%d %d\n", &p, &a) != EOF){if (p == 0 && a == 0){break;}if (isprime(p)){printf("no\n");continue;}if (qpowmod(a, p, p) == a){printf("yes\n");}elseprintf("no\n");}return 1;}

0 0
原创粉丝点击