You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

113 lines
3.1 KiB

using System;
namespace TheGameExtreme.model
{
public class Fraction
{
public int Numerateur;
public int Denominateur;
public int SizeMax;
public Fraction(int numerateur, int denominateur, int sizeMax)
{
Numerateur = numerateur;
Denominateur = denominateur;
SizeMax = sizeMax;
}
public bool isMultiple(Fraction fraction)
{
bool numIsZero = false;
bool denIsZero = false;
if (fraction.Numerateur == 0)
{
numIsZero = true;
}
if (fraction.Denominateur == 0)
{
denIsZero = true;
}
if (fraction.Numerateur == 1 && denIsZero)
{
if (fraction.Denominateur != 1
&& fraction.Denominateur != Denominateur
&& Denominateur % fraction.Denominateur == 0)
{
return true;
}
}
else if (fraction.Denominateur == 1 && !numIsZero)
{
if (fraction.Numerateur != 1
&& fraction.Numerateur != Numerateur
&& Numerateur % fraction.Numerateur == 0)
{
return true;
}
}
else if (fraction.Numerateur == Numerateur && !denIsZero)
{
if (fraction.Denominateur != Denominateur
&& Denominateur % fraction.Denominateur == 0)
{
return true;
}
}
else if (fraction.Denominateur == Denominateur && !numIsZero)
{
if (fraction.Numerateur != Numerateur
&& Numerateur % fraction.Numerateur == 0)
{
return true;
}
}
else
{
if (!numIsZero)
{
if (Numerateur % fraction.Numerateur == 0)
{
return true;
}
}
if (denIsZero)
{
if (Denominateur % fraction.Denominateur == 0)
{
return true;
}
}
}
return false;
}
public bool testDiviseurCommun(Fraction fraction)
{
if (PGCD(Numerateur, fraction.Numerateur) == Numerateur || PGCD(Denominateur, fraction.Denominateur) == Denominateur)
{
return true;
}
return false;
}
private int PGCD(int a, int b)
{
int temp = a % b;
if (temp == 0)
return b;
return PGCD(b, temp);
}
public decimal Result()
{
decimal result = (decimal)Numerateur / (decimal)Denominateur;
return result;
}
override public string ToString()
{
return Numerateur.ToString() + "/" + Denominateur.ToString();
}
}
}