Just do it130 2021-12-07 20:34 采纳率: 93.3%
浏览 13
已结题

扩展欧几里得求逆元中的问题

在扩展欧几里得求逆元的时候,最后一步x = (x%p + p) % p;是怎么来的
#include
#include
#include
using namespace std;
long long x, y, n,p;//最好定全局变量
inline void exgcd(long long a, long long b)
{
if (b == 0) //当b=0时就是遇到了特解,可以递归回去算答案了
{
x = 1, y = 0;
return;
}
exgcd(b, a%b);
long long k;
k = x;
x = y;
y = k - (a / b)*y;
}
int main()
{
ios::sync_with_stdio(false);
cin >> n >> p;
for (long long i = 1; i <= n; i++) {
exgcd(i, p);
x = (x%p + p) % p;
cout << x << endl;
}
return 0;
}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月15日
    • 创建了问题 12月7日