Hogyan lehet prímtényezők szorzatát így felírni? C#
Úgy szeretném felírni hogy ezt írja ki a végén hogy:12=2^2*3.
A segítséget előre is köszönöm!
Ne köszöngess, inkább vázold az ötletedet.
Esetleg a kódodat, ha van valami kezdemény.
Vagy egy kérdést.
először is felbontod prímtányezőkre: 2*2*3
megszámolod, hogy az azonos pímekből hány darab van
majd kiírod:
for (int i=0; i<primtenyezok.Length; i++)
{
if (i!=0)
{
cw("*");
}
cw(primtenyezok[i]);
if (hatvanyok[i]>1)
{
cw("^" + hatvanyok[i]);
}
}
eddig jutottam :
int e = 10;
int[] tomb = new int[100];
int osztó = 2, n = Convert.ToInt32(Console.ReadLine());
while (n != 1)
{
if (n % osztó == 0)
{
n = n / osztó;
tomb[e] = osztó;
e++;
}
else { osztó++; }
}
int a = 1;
for (int i = 1; i < tomb.Length; i++)
{
if (tomb[i] != 0)
{
if (tomb[i] == tomb[i - 1])
{
a++;
}
else
{
Console.WriteLine("{0}^",tomb[i]);
Console.Write(a); }
}
} Console.ReadKey();
}
}
}
Igazából nagyon megrekedtem a kiíratásnál ,mindig rosszul írja ki most igy van a vége: int a = 1;
for (int i = 1; i < tomb.Length; i++)
{
if (tomb[i] != 0)
{
if (tomb[i] == tomb[i - 1])
{
a=a+1;
if (i == tomb.Length)
{
Console.Write("{0}^{1}", tomb[i],a);
}
}
else
{
Console.Write("{0}^{1}*", tomb[i - 1],a); Console.Write("{0}*", tomb[i]);
}
}
} Console.ReadKey();
}
}
}
Ne vacakolj tömbbel, fölösleges.
osztó 2-től szám-ig egyesével
_hatvány 1-től amíg (osztó^hatvány % szam = 0)
_kiír (osztó+"^"+hatvány+"*")
_szám = szám / (osztó^hatvány)
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!