mirror of
https://hub.njuu.cf/TheAlgorithms/C-Plus-Plus.git
synced 2023-10-11 13:05:55 +08:00
Merge pull request #720 from TheAlgorithms/revert-609-eulerTotient
Revert "added Euler totient function"
This commit is contained in:
commit
55337f3978
@ -1,51 +0,0 @@
|
|||||||
#include <iostream>
|
|
||||||
#include <algorithm>
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
/*
|
|
||||||
for numbers a, b returns x, y such as x * a + y * b = gcd(a,b)
|
|
||||||
*/
|
|
||||||
|
|
||||||
pair<int,int> extendedEuclidian(int a, int b) {
|
|
||||||
int a_old = a, b_old = b;
|
|
||||||
if(a < b) swap(a,b);
|
|
||||||
|
|
||||||
int x = 0, y = 1, old_x = 1, old_y = 0;
|
|
||||||
|
|
||||||
int quotient, residue;
|
|
||||||
while (b) {
|
|
||||||
quotient = a / b;
|
|
||||||
residue = a % b;
|
|
||||||
|
|
||||||
a = b;
|
|
||||||
b = residue;
|
|
||||||
|
|
||||||
int temp;
|
|
||||||
|
|
||||||
temp = x;
|
|
||||||
x = old_x - quotient * x;
|
|
||||||
old_x = temp;
|
|
||||||
|
|
||||||
|
|
||||||
temp = y;
|
|
||||||
y = old_y - quotient * y;
|
|
||||||
old_y = temp;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(b_old > a_old) swap(old_x, old_y);
|
|
||||||
|
|
||||||
return make_pair(old_x, old_y);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
|
|
||||||
int a, b;
|
|
||||||
cin >> a >> b;
|
|
||||||
pair<int,int> result = extendedEuclidian(a, b);
|
|
||||||
|
|
||||||
cout<< result.first << " " << result.second;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user