C# programozas. Mi lehet a problema?
Programozási feladat: Állapítsuk meg két billentyőzetrıl bekért számról, hogy
relatív prímek-e! Akkor relatív prímek, ha a legnagyobb közös osztójuk az 1.
Hogyan tudnnam megoldani, hogy csak egy erteket irjon ki, amire nekem szuksegem van?
Main fölé ezt bebiggyeszted:
static int gcd(int a, int b)
{
return b == 0 ? a : gcd(b, a % b);
}
Main függvényben pedig:
if(gcd(72, 84) == 1)
{
//...
}
else
{
//...
}
Miért írja ki sokszor?
Mert ciklusban.
Helyezd olyan helyre, hogy csak egyszer írja ki (cikluson kívülre) és csak abban az esetben, ha relatív prímek.
Csinálj a számolásból függvényt, szebb lesz a kódod.
+1 a fordító nem véletlenül jelez warningokat, nézd meg azt, amit zölddel aláhúzott alaposabban.
static void Main(string[] args)
{
int a, b, i;
a = Convert.ToInt32(Console.ReadLine());
b = Convert.ToInt32(Console.ReadLine());
if (a > b) i = b; else i = a;
while ((a % i != 0) || (b % i != 0)) i--;
if (i == 1) Console.WriteLine("Relatív prímek"); else Console.WriteLine("Nem relatív prímek, osztójuk {0}", i);
Console.ReadLine();
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!