GESP202503五级:判断整数a是否为质数p原根的代码实现
```cpp #include <iostream> using namespace std; // 快速幂函数,计算 (base^exponent) % modulus long long fastPower(long long base, long long exponent, long long modulus) { long long result = 1; base = base % modulus; while (exponent > 0) { if (exponent % 2 == 1) { result = (result * base) % modulus; } base = (base * base) % modulus; exponent = exponent >> 1; } return result; } // 判断 a 是否为 p 的原根 bool isPrimitiveRoot(int a, int p) { // 条件1: 1 < a < p if (a <= 1 || a >= p) { return false; } // 条件2: a^(p-1) mod p = 1 if (fastPower(a, p - 1, p) != 1) { return false; } // 条件3: 对于任意 1 ≤ i < p - 1 均有 a^i mod p != 1 for (int i = 1; i < p - 1; i++) { if (fastPower(a, i, p) == 1) { return false; } } return true; } int main() { int T; cin >> T; while (T--) { int a, p; cin >> a >> p; if (isPrimitiveRoot(a, p)) { cout << "Yes" << endl; } else { cout << "No" << endl; } } return 0; } ``` 这段代码实现了判断一个整数 `a` 是否为质数 `p` 的原根的功能。首先定义了快速幂函数 `fastPower` 用于高效计算幂取模运算,然后定义 `isPrimitiveRoot` 函数来检查 `a` 是否满足原根的三个条件。在 `main` 函数中,读取测试数据组数 `T`,对于每组数据调用 `isPrimitiveRoot` 函数进行判断并输出结果。 ######[AI问答 | 511点数解答 | 2026-02-03 17:11:00]
- GESP202503五级:原根判断问题全解析,含代码与复杂度分析(字节豆包 | 668点数解答 | 2026-02-02 17:30:47)25
- GESP202503五级:判断整数a是否为质数p原根的代码实现(字节豆包 | 511点数解答 | 2026-02-03 17:11:00)31
- 判断超级幸运数:满足“纯4/7数位”或“4/7总个数为4或7”的整数计数(阿里通义 | 965点数解答 | 2026-03-13 12:15:06)21
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- JS 代码:判断“red”改值为“green”并弹窗显示结果( | 176点数解答 | 2024-05-20 21:33:04)414
- 用 JS 代码巧妙判断 a 与 b 关系:输出对应结果 ( | 47点数解答 | 2024-05-20 22:10:14)323
- C 语言:按特定顺序读入并输出浮点数、整数和字符(字节豆包 | 106点数解答 | 2024-09-26 00:32:40)311
- C语言:按序读入浮点数、整数、字符并按新顺序输出,附代码实现 (字节豆包 | 108点数解答 | 2024-09-30 22:54:08)327
- C语言:按特定顺序读入并输出浮点数、整数和字符,精确控制小数位(字节豆包 | 155点数解答 | 2024-10-08 22:06:18)322
- C++与Python:按特定顺序输入输出数据并保留浮点数两位小数的实现(字节豆包 | 168点数解答 | 2024-10-08 22:07:03)325
- C语言:按特定顺序读入再输出,含浮点数精确格式处理(字节豆包 | 105点数解答 | 2024-10-08 22:07:29)334
- C++ 混合类型数据格式化输入输出:按指定顺序输出并保留两位小数(字节豆包 | 187点数解答 | 2024-10-16 14:31:08)380