Stránka 1 z 1

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

Napsal: 29 říj 2011 23:04
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.

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

Napsal: 29 říj 2011 23:16
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.

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

Napsal: 29 říj 2011 23:33
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?

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

Napsal: 29 říj 2011 23:54
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);
}

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

Napsal: 30 říj 2011 00:07
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);
}