IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
xyzom
Člen
Avatar
xyzom:13.2.2017 18:11

Ahoj, mám menší problém. Prosím moc o jakoukoliv radu. Mám vytvořit Windows aplikaci, ve které bude tlačítko, textové pole a listbox. Do editačního pole zadáte číslo a po kliknutí na tlačítko se jednotlivá prvočísla, ze kterých je číslo složeno, vypíšou pod sebe do listboxu. Prosím moc o cokoliv. Díky

 
Odpovědět
13.2.2017 18:11
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na xyzom
Petr Čech:13.2.2017 18:47

Nemám momentálně čas na napsání kódu, hledáš na Googlu klíčové fráze "prime factor" / "prvočíselný rozklad".

Nahoru Odpovědět
13.2.2017 18:47
the cake is a lie
Avatar
Poggy
Člen
Avatar
Poggy:13.2.2017 20:10

Myslíš něco jako tohle?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Rozklad_na_prvocisla
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnrozloz_Click(object sender, EventArgs e)
        {
            string cislotextem = txtcislo.Text;
            int cislo = 0;
            try
            {
                cislo = Convert.ToInt32(cislotextem);
            }
            catch (Exception)
            {
                MessageBox.Show("Zadáno neplatné číslo.");
                txtcislo.Text = null;
                return;
            }
            List<int> prvocisla = new List<int>();
            while(cislo % 2 == 0)
            {
                prvocisla.Add(2);
                cislo /= 2;
            }
            int prvocislo = 3;
            while(prvocislo * prvocislo <= cislo)
            {
                if (cislo % prvocislo == 0)
                {
                    prvocisla.Add(prvocislo);
                    cislo /= prvocislo;
                }
                else
                    prvocislo += 2;
            }
            if (cislo > 1) prvocisla.Add(cislo);
            lbvysledek.Items.Add("Rozložená prvočísla vzestupně:");
            foreach (int vysledek in prvocisla)
                lbvysledek.Items.Add(vysledek);

        }
    }
}
 
Nahoru Odpovědět
13.2.2017 20:10
Avatar
xyzom
Člen
Avatar
xyzom:13.2.2017 20:15

To je přesně ono.. děkuju.. mě to u nějakých čísel vůbec nešlo.. třeba 18 mi to hodilo 293.. a nemohl jsem najít chybu.. děkuju moc

 
Nahoru Odpovědět
13.2.2017 20:15
Avatar
Poggy
Člen
Avatar
Odpovídá na xyzom
Poggy:13.2.2017 21:15

Ještě by bylo hodné pro zadání nového čísla vložit na začátek:

lbvysledek.Items.Clear();

Takhle se přidávají s novým zadáním řádky.

 
Nahoru Odpovědět
13.2.2017 21:15
Avatar
xyzom
Člen
Avatar
xyzom:14.2.2017 19:37

jo to jsem tam přidával :) ale díky

 
Nahoru Odpovědět
14.2.2017 19:37
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.