C# programok ismertetése érdeklődőknek kezdőktől haladókig

C# MŰHELY

C# MŰHELY

Egész szám törzstényezői hatványkitevős alakban

2020. június 17. - Benkő Tiborné

Írjunk programot, amely egy egész szám  törzstényezős alakjánál tömörebb, hatványkitevős alakban jelenítse meg az eredményt.

A törzstényezős alak kiíratásánál használható a tömörebb hatványkitevős alak:

       64  =  2*2*2*2*2*2 = 2^6

       576 =  2*2*2*2*2*2*3*3 = 2^6*3^2

A feladat megoldása:

                     // Törzstényezők kiírása hatványkitevős alakban
         private void button1_Click(object sender, EventArgs e)
         {
            int szám, osztó, előzö, hatv;
            bool első = true;
            string s = "";
            if (textBox1.Text != "")
            {
                szám = Int32.Parse(textBox1.Text);
                if (szám > 0)
                {
                    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++; // azonos osztó esetén
                                      // növeljük  hatv értékét
                        else
                        {
                            if (hatv > 1)
                            {
                                // hatv kiírásra kerül és
                                // az osztó is
                                s += "^" + hatv + "*" + osztó;
                                hatv = 1; // újra 1 hatv értéke
                            }
                            else
                                s += "*" + osztó; // új osztó kiírása
                        }
                        szám = szám / osztó;
                        if (szám == 1 && előzö == osztó && hatv > 1 )
                           s += "^" + hatv; // utolsó kiírás
                        előzö = osztó; // előzö beállítása
                    }
                    textBox2.Text = s;
                }
                else
                    MessageBox.Show("Hibás adat!", "Üzenet");
            }
        }

        // Ha az adat változik a korábbi eredmény törlődik
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
             textBox2.Text = "";
        }

A program futási eredményei:

     

     

A bejegyzés trackback címe:

https://csharp-muhely.blog.hu/api/trackback/id/tr6415813320

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása