Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Výpis prvočísel, kterými je číslo dělitelné bez nuly

C# .NET .NET (C# a Visual Basic) Výpis prvočísel, kterými je číslo dělitelné bez nuly American English version English version

Aktivity (1)
Avatar
Michal Kosobud:21.12.2013 13:50

Ahoj, můžete mi prosím objasnit, jak mám upravit zdroják, aby výpis netrval tak dlouho? :-)
psáno v C#

using System;
using System.Collec­tions.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.Write­Line("Vložte číslo z intervalu < 10 ; 1 000 000 >");
int a;

while ((!int.TryPar­se(Console.Re­adLine(), out a)) || (a < 10) || (a > 1000000))
Console.Write­Line("Nezadali jste hodnotu z intervalu. Zadejte číslo znovu:");

float mezivypocet = a;
Console.Write­Line("Číslo je dělitelné prvočísly:");

bool prvocislo = true;

for (int i = 2; i <= a; i++)
{
for (int j = 2; j <= a; j++)
{

if (i != j && i % j == 0)
{

prvocislo = false;

}

}

if (prvocislo)
{

mezivypocet = (float)a / (float)i;

if ((mezivypocet % 1) == 0)
{

Console.WriteLine(" {0} ", i);

}

}

prvocislo = true;

}

Console.Write­Line("Pro ukončení stiskněte libovolnu klávesu.");
Console.ReadKey();

}
}
}

Editováno 21.12.2013 13:51
 
Odpovědět 21.12.2013 13:50
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Michal Kosobud
Jan Vargovský:21.12.2013 15:04

Použí tlačítko vložit zdrojový kód. Tohle ti nikdo luštit nebude.

 
Nahoru Odpovědět 21.12.2013 15:04
Avatar
coells
Redaktor
Avatar
Odpovídá na Michal Kosobud
coells:21.12.2013 15:49

Snadno...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Vložte číslo z intervalu <10 ; 1 000 000>");

            int a;
            while (!int.TryParse(Console.ReadLine(), out a) || (a < 10) || (a > 1000000))
                Console.WriteLine("Nezadali jste hodnotu z intervalu. Zadejte číslo znovu:");

            int mezivypocet = a;
            Console.WriteLine("Číslo je dělitelné prvočísly:");

            for (int i = 2; i <= a; )
            {
                if ((a % i) == 0)
                {
                    Console.WriteLine(i);
                    a /= i;
                }
                else
                {
                    i++;
                }
            }

            Console.WriteLine("Pro ukončení stiskněte libovolnu klávesu.");
            Console.ReadKey();
        }
    }
}
Editováno 21.12.2013 15:50
 
Nahoru Odpovědět 21.12.2013 15:49
Avatar
Odpovídá na coells
Michal Kosobud:5.1.2014 19:56

a aby mi to vypsalo pouze jednou to prvočíslo a ne třeba 6krát? to udělám jak prosím? :-)

 
Nahoru Odpovědět 5.1.2014 19:56
Avatar
coells
Redaktor
Avatar
Odpovídá na Michal Kosobud
coells:5.1.2014 20:15
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Vložte číslo z intervalu <10 ; 1 000 000>");

        int a;
        while (!int.TryParse(Console.ReadLine(), out a) || (a < 10) || (a > 1000000))
            Console.WriteLine("Nezadali jste hodnotu z intervalu. Zadejte číslo znovu:");

        int mezivypocet = a;
        Console.WriteLine("Číslo je dělitelné prvočísly:");

        for (int i = 2; i <= a; i++)
        {
            if ((a % i) == 0)
            {
                Console.WriteLine(i);
                while ((a % i) == 0)
                    a /= i;
            }
        }

        Console.WriteLine("Pro ukončení stiskněte libovolnu klávesu.");
        Console.ReadKey();
    }
}
 
Nahoru Odpovědět 5.1.2014 20:15
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 5 zpráv z 5.