Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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
Veganekk
Člen
Avatar
Veganekk:2.11.2013 19:01

Dobrý den
Chci se zeptat když mám najít všechna přirozená čísla něž bude menší dané N, která jsou dělitelná svojí cifrou.
To znamená že se to dá dělat podle

  1. Podle dělitelnosti čísel(2,3,4,5,­6,7,8,9,10)
  2. Hledáním prvočísel,která jsou dělitelná jen sama sebou a jedničkou.

Asi lepší způsob hledání těch čísel bude přes prvočísla jestli se nemýlím.
Děkuji za odpověd

Odpovědět
2.11.2013 19:01
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Lako
Člen
Avatar
Odpovídá na Veganekk
Lako:2.11.2013 20:12

A máš najít analytické řešení, nebo na to udělat program?
Jestli program, tak to prostě proženeš forem a zeptáš se na tu podmínku.
Jestli analytické, tak to je mírně jiné fórum, ale i tak ti tu někteří pomohou snad.

 
Nahoru Odpovědět
2.11.2013 20:12
Avatar
Veganekk
Člen
Avatar
Veganekk:9.11.2013 23:43

Je tento kod dobre?
Jinak presne zadani--->Nalezněte všechna přirozená čísla menší než dané N, která jsou dělitelná každou svou. A zajima me jestli tento kod je dobre ci nikoliv...

int N = Convert.ToInt32(Console.ReadLine());
            int zbytek;
            int cislo;
            for (int i = 0; i < N; i++)
            {
               bool jeDelitelne = true;
                cislo = i;
                while (cislo > 0)
                {
                    zbytek = cislo % 10;
                    cislo = (cislo - zbytek) / 10;
                   if (zbytek == 0)
                    {
                        jeDelitelne = false;
                    }
                    else
                    {
                        if ((i % zbytek) != 0)
                        {
                            jeDelitelne = false;
                        }
                    }
                }
                if (jeDelitelne==true)
                {
                    Console.Write(i + " , ");
                }
            }
Nahoru Odpovědět
9.11.2013 23:43
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Panda38
Tvůrce
Avatar
Odpovídá na Veganekk
Panda38:10.11.2013 5:17

První řádek by mohl nejspíš být dobře. Zbytek ani náhodou. Doporučuji Ti nejdříve se podívat co znamená prvočíslo a co znamená číslo dělitelné něčím.

 
Nahoru Odpovědět
10.11.2013 5:17
Avatar
Veganekk
Člen
Avatar
Veganekk:10.11.2013 14:18

Prvocislo je cislo delitelne samou sebou a 1. Asi to nebudu hledat pres prvocisla protoze musim tjistit jestli jsou cisla delitelna kazdou svou cifrou....
A ten kod mam dobre ci nikoliv teda??

Nahoru Odpovědět
10.11.2013 14:18
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Panda38
Tvůrce
Avatar
Odpovídá na Veganekk
Panda38:10.11.2013 15:18

Kód máš tak špatně, že se Ti ho ani nikdo nepokouší připomínkovat. Máš tam jen jakýsi náznak pokusu o test dělitelnosti deseti, ale žádný náznak testů na prvočísla. Nevím jak jsi uvažoval, asi Ti není jasné co jsou prvočísla a jak se testují, protože to tam vůbec neděláš.

Aha teď mi dochází z Tvých textů - Ty si myslíš, že prvočísla se testují "ciframi" v čísle (a proto to dělíš deseti). To sis někde něco špatně přečetl. Prvočísla jsou čísla, která se nedají rozložit na žádné další součinitele, kromě 1 a čísla samotného. To znamená - 6 se dá rozložit na 2*3 , je tedy dělitelné 2 nebo 3 a není prvočíslo. Ale číslo 7 se nedá rozložit, dá se vyjádřit pouze jako 7*1, je prvočíslo. Test N na prvočíslo znamená, že to číslo zkoušíš dělit čísly 2 až N-1 (otpimálněji 2..sqrt(N)) a zjišťuješ, zda je některým z nich dělitelné beze zbytku.

 
Nahoru Odpovědět
10.11.2013 15:18
Avatar
koňo
Neregistrovaný
Avatar
 
Nahoru Odpovědět
10.11.2013 15:25
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Veganekk
Jan Vargovský:10.11.2013 15:31
private static List<int> ZiskejPrvocisla(int n)
    {
        if( n < 1)
            throw new Exception();

        var cisla = new List<int>();
        for (int i = 2; i <= n; i++)
            if (JePrvocislo(i))
                cisla.Add(i);
        return cisla;
    }

    private static bool JePrvocislo(int c)
    {
        for (int i = 2; i < c; i++)
        {
            if (c % i == 0)
                return false;
        }
        return true;
    }
 
Nahoru Odpovědět
10.11.2013 15:31
Avatar
Veganekk
Člen
Avatar
Veganekk:10.11.2013 18:58

Vy jste me jen spatne pochopili. A asi jsme taky napsal spatne otazku kdyz jsme daval prispevek. A podle zadani viz toto Nalezněte všechna přirozená čísla menší než dané N, která jsou dělitelná každou svou. A zajima me jestli tento kod je dobre ci nikoliv...
Tak jsem si to probiral a dosli mi ze delat to Prvočísla jsou čísla, která jsou dělitelná jen jedničkou a sama sebou. . A v zadani mam najit cisla jenz jsou delitena kazdou svoji cifrou a v tom pripade to je nesmysl. Ne? jestli mám najit vsechna prirozena cisla delitelna kazdou svoji cifrou.
A tak se ptam zda to mam dobre nebo ne.
Zde mám upraveny kod jen pro jedno zjisteni cisla jestli je delitelne.

int jedelitelne(int cislo)
{
        int test = cislo;
        int cifra;
        while(test > 0) {
                cifra = test % 10;
                if (cifra == 0) return(0);
                if ((cislo % cifra) != 0) return(0);
                test = test / 10;
        }
        return(1);
}
Nahoru Odpovědět
10.11.2013 18:58
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
koňo
Neregistrovaný
Avatar
Odpovídá na Veganekk
koňo:10.11.2013 20:28

Prijdes mi jako zhulenej... Neumis psat nebo ja nevim

 
Nahoru Odpovědět
10.11.2013 20:28
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 11 zpráv z 11.