Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 06. 05. 2014 20:47

citizens
Zelenáč
Příspěvky: 10
Škola: ZČU
Pozice: student
Reputace:   
 

C prvočísla

Mohl bych se zeptat jestli by mi někdo poradil, program pod tímto dotazem je na rozklad čísla na součin prvočísel. Potřeboval bych poradit co ve kterém cyklu znamenají různé operace, jsem v programování začátečník a chtěl bych si tuhle část vyzkoušet v programu, ale chci zjistit co a jak funguje?

Děkuji za případné odpovědi


int i,j,x;                                           /* nadefinovani promennych pro operace */
    int prvocisla[500], indexP = 0;

    x = 2;
    while (number % x != 0) x++;
    if(number == x){
        prvocisla[indexP] = number, indexP++;
        goto ven;
    }

    for(i = 2; i <= number; i++){
        /* castecne odlehceni vypocetniho algoritmu */
        {
            if(((i%2) == 0) && i != 2 )
                continue;
            if(((i%3) == 0) && i != 3 )
                continue;
            if(((i%5) == 0) && i != 5 )
                continue;
            if(((i%7) == 0) && i != 7 )
                continue;
        }

        x = 2;
        while (i % x != 0) x++;
        if(i==x){
            while((number % x) == 0){
                prvocisla[indexP] = x, indexP++;
                number /= x;
                x = 2;
                while (number % x != 0) x++;
                if(number == x){
                    prvocisla[indexP] = number, indexP++;
                    goto ven;
                }
            }
        }
    }

    ven:;

    for(j = 0; j < indexP; j++){
        printf("%d",prvocisla[j]);
        if(ulozit)
            fprintf(soubor,"%d",prvocisla[j]);
        if((j+1) < indexP){
            printf(" * ");
            if(ulozit)
                fprintf(soubor," * ");
        }
    }
    printf(" \n\n\n ");
    if(ulozit)
        fclose(soubor);

    system("pause");
}

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson