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