Írjunk programot, amely egy egész számot törzstényezős és hatványkitevős alakra bontja függvénnyel.
A feladat megoldása:
static void Törzstényezős(int szám, out string s)
{
int osztó, db = 0;
s = "";
while (szám != 1)
{
osztó = 2;
while (szám % osztó != 0)
{
osztó++;
}
szám = szám / osztó;
db++;
if (szám == 1) s += osztó;
else s += osztó + "*";
}
}
static void Hatványkitevős(int szám, out string s)
{
int osztó, előzö, hatv;
bool első = true;
s = "";
előzö = 2; hatv = 0;
while (szám != 1)
{
osztó = 2;
while (szám % osztó != 0)
{
osztó++;
}
if (első)
{
előzö = osztó;
s += osztó;
első = false;
}
if (előzö == osztó) hatv++;
else
{
if (hatv > 1)
{
s += "^" + hatv + "*" + osztó;
hatv = 1;
}
else
s += "*" + osztó;
}
szám = szám / osztó;
if (szám == 1 && előzö == osztó && hatv > 1)
s += "^" + hatv;
előzö = osztó;
}
}
private void Megoldás_Click(object sender, EventArgs e)
{
int szám;
string s1, s2;
if(textBox1.Text != "")
{
szám = Int32.Parse(textBox1.Text);
if (szám > 0)
{
Törzstényezős(szám, out s1);
textBox2.Text = s1;
Hatványkitevős(szám, out s2);
textBox3.Text = s2;
}
else
MessageBox.Show("Az adat nem megfelelő");
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
textBox2.Text = "";
textBox3.Text = "";
}
A program futási eredményei: