"Наибольший общий делитель двух целых чисел - это наибольшее целое число, которое равномерно делит каждое из двух чисел. Напишите метод Gcd, который возвращает наибольший общий делитель двух целых чисел. Включите метод в приложение, которое считывает два значения от пользователя и отображает результат. "
(это не домашняя работа, а упражнение в книге, которую я использую)
Вы можете помочь мне решить это? Вот что у меня так далеко.
(изменить - я могу отправить два числа, но GCD для меня не рассчитается)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Greatest_Common_Divisor
{
class Program
{
static int GetNum(string text)
{
bool IsItANumber = false;
int x = 0;
Console.WriteLine(text);
do
{
IsItANumber = int.TryParse(Console.ReadLine(), out x);
} while (!IsItANumber);
return x;
}
static void Main(string[] args)
{
string text = "enter a number";
int x = GetNum(text);
text = "enter a second number";
int y = GetNum(text);
int z = GCD(x, y);
Console.WriteLine(z);
}
private static int GCD(int x, int y)
{
int v = 0;
int n = 0;
v = GetGreatestDivisor(x, y);
return v;
}
static int GetGreatestDivisor(int m, int h)
{
do
{
for (int i = m; i <= 1; i--)
if (m%i == 0 && h%i == 0)
{
int x = 0;
x = i;
return x;
}
} while (true);
return m;
}
}
}