Witam!!
mialbym prosbe do kogos bieglego w c# o napisanie programu: rozszerzony algorytm euklidesa oraz dzielenie modulo na duzych liczbach, musze oddac te 2 zadanka na zaliczenie w przyszla niedziele a ja jestem z programowania raczej slaby.
z gory dziekuje za pomoc!!
ps.ewentualne wynagrodzenie do uzgodnienia.
znalazlem taki kod w sieci odnosnie alg. euklidesa ale cos sie nie uruchamia:/-->
// Rozszerzony algorytm Euklidesa
using System;
namespace euklides_rozsz
{
class Euklides
{
static void Main(string[] args)
{
int r, a, q, b;
int x, x1, x2;
int y, y1, y2;
int nwd_a, nwd_b, nwd;
Console.WriteLine("Podaj pierwsza liczbe");
nwd_a = int.Parse(Console.ReadLine());
Console.WriteLine("Podaj druga liczbe");
nwd_b = int.Parse(Console.ReadLine());
if (nwd_b > nwd_a)
{
nwd = nwd_b;
nwd_b = nwd_a;
nwd_a = nwd;
}
a = nwd_a;
b = nwd_b;
q = a/b;
r = a - q*b;
nwd = b;
x2 = 1;
x1 = 0;
y2 = 0;
y1 = 1;
x = 1;
y = y2 - (q-1)*y1;
while (r != 0)
{
a = b;
b = r;
x = x2 - q*x1;
x2 = x1;
x1 = x;
y = y2 - q*y1;
y2 = y1;
y1 = y;
nwd = r;
q = a/b;
r = a - q*b;
}
Console.WriteLine("NWD("+nwd_a+", "+nwd_b+") = "+nwd+" = "+x+" * "+nwd_a+" + "+y+" * "+nwd_b);
if (nwd == 1)
Console.WriteLine(nwd_b+" * "+y+" mod "+nwd_a+" = 1");
}
}
}
czy on jest poprawny,a moze wystarczy cos zmienic??
pozdrawiam