首页 > 代码库 > UVA 10831 - Gerg's Cake(数论)
UVA 10831 - Gerg's Cake(数论)
UVA 10831 - Gerg‘s Cake
题目链接
题意:说白了就是给定a, p,问有没有存在x^2 % p = a的解
思路:求出勒让德标记,判断如果大于等于0,就是有解,小于0无解
代码:
#include <stdio.h> #include <string.h> long long a, p; long long pow_mod(long long x, long long k, long long mod) { long long ans = 1; while (k) { if (k&1) ans = ans * x % mod; x = x * x % mod; k >>= 1; } return ans; } int lederang(long long a, long long p) { a %= p; if (a == 0) return 0; if (pow_mod(a, (p - 1) / 2, p) == 1) return 1; return -1; } int main() { while (~scanf("%lld%lld", &a, &p) && a != -1) { if (lederang(a, p) < 0) printf("No\n"); else printf("Yes\n"); } return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。