Olvassunk be egész számot és vizsgájuk meg, hogy tökéletes szám-e. Egy szám akkor tökéletes, ha az osztóinak összege +1 megegyezik a számmal. A feladatot oldjuk meg for, while és do-while ciklusutasításokkal.
A feladat megoldása:
// A feladat megoldása for ciklussal
private void button1_Click(object sender, EventArgs e)
{
int oszto, osszeg = 1, szam;
if (textBox1.Text != "")
{
szam = Int32.Parse(textBox1.Text);
for (oszto = 2; oszto <= szam / 2; oszto++)
{
if (szam % oszto == 0)
osszeg += oszto;
}
if (osszeg == szam)
textBox2.Text = "tökéletes szám: " + osszeg;
else
textBox2.Text = "nem tökéletes szám: "
+ osszeg;
}
}
// A feladat megoldása while ciklussal
private void button2_Click(object sender, EventArgs e)
{
int oszto, osszeg = 1, szam;
if (textBox1.Text != "")
{
szam = Int32.Parse(textBox1.Text);
oszto = 2;
while (oszto <= szam / 2)
{
if (szam % oszto == 0)
osszeg += oszto;
oszto++;
}
if (osszeg == szam)
textBox3.Text = "tökéletes szám: " + osszeg;
else
textBox3.Text = "nem tökéletes szám: "
+ osszeg;
}
}
// A feladat megoldása do-while ciklussal
private void button3_Click(object sender, EventArgs e)
{
int oszto, osszeg = 1, szam;
if (textBox1.Text != "")
{
szam = Int32.Parse(textBox1.Text);
oszto = 2;
do
{
if (szam % oszto == 0)
osszeg += oszto;
oszto++;
} while (oszto <= szam / 2);
if (osszeg == szam)
textBox4.Text = "tökéletes szám: " + osszeg;
else
textBox4.Text = "nem tökéletes szám: "
+ osszeg;
}
}
// Ha a textbox1.Text mezejében az adat változik
// az eredményt tároló ablakok törlődnek
private void textBox1_TextChanged(object sender, EventArgs e)
{
textBox2.Text = ""; textBox3.Text = "";
textBox4.Text = "";
}
A program futási eredményei: