zoukankan      html  css  js  c++  java
  • uva 10831

    题目链接:uva 10831 - Gerg's Cake

    题目大意:给定a和p。p为素数,问说是否存在x,使得x2a%p

    解题思路:勒让德记号,推断ap121%p

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    typedef long long ll;
    
    ll pow_mod (ll a, ll n, ll mod) {
        ll ans = 1;
        while (n) {
            if (n&1)
                ans = ans * a % mod;
            a = a * a % mod;
            n /= 2;
        }
        return ans;
    }
    
    int legendre (ll a, ll p) {
        a %= p;
        if (a == 0)
            return 0;
        if (pow_mod(a, (p-1)/2, p) == 1)
            return 1;
        else
            return -1;
    }
    
    int main () {
        ll a, p;
        while (scanf("%lld%lld", &a, &p) == 2 && a != -1 && p != -1) {
            if (legendre(a, p) < 0)
                printf("No
    ");
            else
                printf("Yes
    ");
        }
        return 0;
    }

    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    攀岩
    插入排序
    runtime error
    vector
    旅行家
    九键字母组合
    [蓝桥杯][基础训练]Sine之舞
    代码计算程序运行的时间
    max_element
    distance
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4616145.html
Copyright © 2011-2022 走看看