C# trouver le plus grand commun diviseur

"Le plus grand commun diviseur de deux nombres entiers est le plus grand entier qui uniformément divise chacun des deux nombres. La méthode d'écriture Pgcd qui renvoie le plus grand commun diviseur de deux nombres entiers. Incorporer la méthode dans une application qui lit deux valeurs de l'utilisateur et affiche le résultat."

(ce n'est pas de devoirs, juste un exercice dans le livre que je suis en utilisant)

pouvez-vous m'aider à résoudre ce problème? Voici ce que j'ai obtenu jusqu'à présent. Grâce

(modifier - je peux envoyer les deux chiffres, mais il ne sera pas calculer le Pgcd pour moi)

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;
        }

  }
}
Votre code ne fonctionne pas ou tout simplement incomplète?
Quel est le problème ici?
Je peux envoyer les deux chiffres, mais il ne sera pas calculer le Pgcd pour moi
Vous devriez vérifier le algorithme d'Euclide.
for (int i = m; i <= 1; i--) ne sera pas exécuté lorsque m > 1, vous signifiait i >= 1.

OriginalL'auteur user2723261 | 2013-08-30