Sunteți pe pagina 1din 2

sa se scrie un program in care citeste repetat in main doua nr intregi x si y pana

cand utilizatorul apasa tasta n


a.la fiecare citire a intregilor se creaza un obiect al unei clase si se calculeaza
suma primilor x factori ai lui y prin intermediul unei metode a clasei ,
afisarea rezultatului se face prin intermediul unei alte metode a aceleasi clase ,
la final programul:
b. o sa afiseze toti factorii care au fost insumati
c. va calcula si va afisa cea mai mare suma a factorilor calculati(toate datele
membre ale clasei sunt private)

main - declarare tablou de tipul clasei


- citesc repetat x si y
- crearea obiectului cu parametrii x si y

apelul metodei se va face din constructor care sa calculeze factori si sa insumeze


de la x la y, dupa ce calculez, afisez (din constructor se apeleaza cele 2 metode,
calculare si afisare)

using System;

namespace ConsoleApplication1
{
class perechi
{
int x;
int y;
static int[] tabFactori = new int[0];
static int dim = 0;
static int SumaMax = 0;

public perechi(int x, int y)


{
this.x = x;
this.y = y;
calculeaza();
}

void calculeaza()
{
int S = 0, nrFactori=0;
for(int i=2;i<=y/2 && nrFactori<x;i++)
if(y%i==0)
{
S = S + i;
nrFactori++;
Array.Resize(ref tabFactori, dim = dim + 1);
tabFactori[dim - 1] = i;
}
perechi.afiseazaSumaFactori(nrFactori, S);
if (S > SumaMax)
SumaMax = S;
}

static void afiseazaSumaFactori(int nrFactori,int S)


{
Console.Write("Suma celor {0} factori este {1}", nrFactori, S);
}
public static void afisareFactori()
{
foreach (int factor in tabFactori)
Console.Write("{0} ", factor);
}

public static int AfiseazaSuma()


{
return SumaMax;
}
}

class Program
{
static void Main(string[] args)
{
int x,y;
perechi[] tabObj = new perechi[0];
int dimensiune = 0;
do
{
do
{
Console.Write("x{0}= ",dimensiune+1);
x = Convert.ToInt32(Console.ReadLine());

Console.Write("y{0}= ",dimensiune+1);
y = Convert.ToInt32(Console.ReadLine());

} while (x >= y);

Array.Resize(ref tabObj, dimensiune = dimensiune + 1);


tabObj[dimensiune - 1] = new perechi(x, y);

Console.Write("\nContinuati? Apasa (n) pentru a iesi: ");


}while(Console.ReadLine()!="n");

perechi.afisareFactori();
Console.WriteLine("Suma maxima este : {0} ", perechi.AfiseazaSuma());
Console.ReadKey();

}
}
}

S-ar putea să vă placă și