You are on page 1of 2

class Factori

{
int x;
int y;
static int suma;
static int sumaMax;
static List<int> factori = new List<int>();
static int nrFactori = 0;

public Factori(int a, int b)


{
x = a;
y = b;
sumaFactorilor();
}

void sumaFactorilor()
{
suma = 0;
nrFactori = 0;
for (int i = 2; i < y && nrFactori < x; i++)
{
if (y % i == 0)
{
suma = suma + i;
nrFactori++;
factori.Add(i);
}
}

if (suma > sumaMax)


sumaMax = suma;

afisare();
}

void afisare()
{
Console.WriteLine("\nSuma primilor {0} factori ai lui {1} este {2}",
nrFactori, y, suma);
}

public static void afisareFactori()


{
foreach (int elem in factori)
Console.Write("{0} ",elem);
}

public static int returnSumaMaxima()


{
return sumaMax;
}
}

class Program
{
static void Main(string[] args)
{
int x, y;
char ch;

do
{
do
{
do
{
Console.Write("x=");
} while (!Int32.TryParse(Console.ReadLine(), out x));
do
{
Console.Write("y=");
} while (!Int32.TryParse(Console.ReadLine(), out y));
} while (x >=y);

Factori f1 = new Factori(x, y);

Console.Write("Continuati? Apasati tasta n pentru a iesi: ");


ch = Convert.ToChar(Console.ReadLine());
}while(ch!='n');

Factori.afisareFactori();
Console.WriteLine("\n\nSuma Maxima este
{0}",Factori.returnSumaMaxima());
Console.ReadKey();
}

You might also like