Algoritmus pro zjištění všech dělitelů čísla v C.

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Zamčeno
Uživatelský avatar
cosmosD
Level 3
Level 3
Příspěvky: 437
Registrován: 10 úno 2011 18:31
Bydliště: Praha

Algoritmus pro zjištění všech dělitelů čísla v C.

Příspěvek od cosmosD »

Čau, má někdo nápad jak to provést? Řeším jednu úlohu a prostě už mi mozek nefrčí dostatečně výkonně abych na to přišel :D.
Chtěl bych to zvládnout bez použití pole, je to možné? Kdyby ne, tak klidně i s polem. Budu rád za jakoukoli radu.
Uživatelský avatar
Myloš
Master Level 8.5
Master Level 8.5
Příspěvky: 6991
Registrován: 11 dub 2006 09:09
Bydliště: Praha

Re: Algoritmus pro zjištění všech dělitelů čísla v C.

Příspěvek od Myloš »

Je-li to int, tak cyklem testovat na zbytek po celočíselném dělení. Pokud je to nula, číslo je dělitel, a ten uložit do proměnné jako textový řetězec, ke kterému se pak budou přičítat další znaky.
  • Než položíte dotaz, nejprve se ptejte strejdy Gůůgla.
  • Výňatek z pravidel fóra PC-HELP:
    • Název tématu zvolte takový, aby co nejvýstižněji charakterizoval obsah tématu.
    • Nesnažte se řešit jiný problém (i když podobný) v jednom tématu. Raději založte nové téma.
  • Mýliti se je Myloš. ;-)
Uživatelský avatar
cosmosD
Level 3
Level 3
Příspěvky: 437
Registrován: 10 úno 2011 18:31
Bydliště: Praha

Re: Algoritmus pro zjištění všech dělitelů čísla v C.

Příspěvek od cosmosD »

Takto jsem taky postupoval, jen bude asi háček v tom řetězci.

Kód: Vybrat vše

int main()
{   int res, i,n=20;
    for (i=1; i<20;i++ )
    {
        if (n%i == 0)
        {
            res=i;
        }
    }

    return 0;
}

Takhle jsme to zkoušel a když to vytisknu tak dostanu 1, 2, 4, 5, 10. A když chci součet těchto dělitelů, tak jak mám postupovat?
Uživatelský avatar
Argoneus
Level 3.5
Level 3.5
Příspěvky: 939
Registrován: 28 pro 2007 21:53
Bydliště: Praha
Kontaktovat uživatele:

Re: Algoritmus pro zjištění všech dělitelů čísla v C.

Příspěvek od Argoneus »

Nejsem odbornik na C, ale imho neco takovyhleho

Kód: Vybrat vše

int main()
{   int res,i,souc=0,n=20;
    for (i=1; i<=n;i++ )
    {
        if (n%i == 0)
        {
            res=i;
            printf(res);
            souc=souc+n;
        }
    }
    printf(souc);
}
CPU: AMD Athlon 64 X2 5000+ EE @ 2,6 Ghz GPU: Sapphire HD 3850 512MB, PCI-E
Zákl. deska: Gigabyte GA-M52L-S3 - nForce 520 RAM: A-DATA 2x1GB DDR2 PC800 Extreme Edition
HDD: Samsung Spin Point F1 HD322HJ 320GB Zdroj: Seasonic SS-500ET-T3 500W
Case: THERMALTAKE VG1000BNS Wing RS100 Black
Uživatelský avatar
cosmosD
Level 3
Level 3
Příspěvky: 437
Registrován: 10 úno 2011 18:31
Bydliště: Praha

Re: Algoritmus pro zjištění všech dělitelů čísla v C.

Příspěvek od cosmosD »

Trochu jsem to poupravil a funguje to. :)

Kód: Vybrat vše

int main()
{   int res,i,souc=0,n=20;
    for (i=1; i<=n;i++ )
    {
        if (n%i == 0)
        {
            res=i;
            printf("%d\n",res);
            souc+=i;
        }
    }
    printf("%d\n",souc);
}
Zamčeno

Zpět na „Programování a tvorba webu“