Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

15. zadatak iz zadataka za praktični kolokvij (zadatak)
WWW:

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
ceps
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 08. 10. 2010. (13:03:07)
Postovi: (13A)16
Sarma = la pohva - posuda
71 = 74 - 3

PostPostano: 22:40 sri, 17. 11. 2010    Naslov: 15. zadatak iz zadataka za praktični kolokvij Citirajte i odgovorite

Napišite program koji kao unos prima paran prirodan broj n > 2 i provjerava da li se n može prikazati kao zbroj dva prosta broja. Ako traženi rastav postoji, onda ga treba i ispisati. Ako postoji više rastava, svejedno je koji se ispisuje. Na primjer, za n = 4 program treba ispisati 4 = 2 + 2, a za n = 10 program treba ispisati 10 = 3 + 7 ili 10 = 5 + 5.
Uputa: Složite for() petlju u kojoj varijabla i ide od 2 do n - 2, a u petlji se provjerava jesu li i i n-i prosti brojevi.

[code:1]

#include <stdio.h>

int main ()
{

int n, i, prost1 = 1, prost2 = 1, x, y, j, t;
printf ("Upisite broj: "); scanf ("%d", &n);

for (i = 2; i <= n/2; i++)
{
t = n - i;
for (j = 2; j < i; j++) {if (i % j == 0) prost1 = 0; }
for(j = 2; j < t; j++) {if (t % j == 0) prost2 = 0;}

if (prost1 && prost2)
{
x = i;
y = t;

}

}

printf ("%d = %d + %d", n, x, y);
return 0;
}
[/code:1]

Evo, najjednostavniji dio programa, bez provjera za to da li je n paran broj veći od 2. Program dobro radi za 4 = 2 + 2, i tu sam se taman poveselio, ali ne radi za bilo što drugo. :)

Vjerojatno je nešto očito, ali ja to ne vidim. Pomoć!
Napišite program koji kao unos prima paran prirodan broj n > 2 i provjerava da li se n može prikazati kao zbroj dva prosta broja. Ako traženi rastav postoji, onda ga treba i ispisati. Ako postoji više rastava, svejedno je koji se ispisuje. Na primjer, za n = 4 program treba ispisati 4 = 2 + 2, a za n = 10 program treba ispisati 10 = 3 + 7 ili 10 = 5 + 5.
Uputa: Složite for() petlju u kojoj varijabla i ide od 2 do n - 2, a u petlji se provjerava jesu li i i n-i prosti brojevi.

Kod:


#include <stdio.h>

int main ()
{
   
    int n, i, prost1 = 1, prost2 = 1, x, y, j, t;
    printf ("Upisite broj: "); scanf ("%d", &n);
   
    for (i = 2; i <= n/2; i++)
    {
        t = n - i;
        for (j = 2; j < i; j++) {if (i % j == 0) prost1 = 0; }
        for(j = 2; j < t; j++) {if (t % j == 0) prost2 = 0;}
           
            if (prost1 && prost2)
             {
                 x = i;
                 y = t;
                 
             }

        }
   
    printf ("%d = %d + %d", n, x, y);
    return 0;
}


Evo, najjednostavniji dio programa, bez provjera za to da li je n paran broj veći od 2. Program dobro radi za 4 = 2 + 2, i tu sam se taman poveselio, ali ne radi za bilo što drugo. Smile

Vjerojatno je nešto očito, ali ja to ne vidim. Pomoć!


[Vrh]
Korisnički profil Pošaljite privatnu poruku
pbakic
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 05. 10. 2009. (17:48:30)
Postovi: (143)16
Spol: muško
Sarma = la pohva - posuda
83 = 86 - 3

PostPostano: 23:00 sri, 17. 11. 2010    Naslov: Citirajte i odgovorite

Program je tocan, do na jedan detalj:
na pocetku si inicijalizirao prost1 i prost2 na 1, sto je ok (planiras ih stavit na nulu ako shvatis da nisu prosti). Ali oni ce postat nula cim se prvi put naidje na slozeni broj, i dalje ostaje na nuli. Rjesenje: trebalo bi staviti naredbe
prost1=1;
prost2=1;
unutar for petlje (odmah na pocetak), jer za svaki i provjeravas dal su i i n-1 i prosti (dakle iznova trebas ove pokazne varijable namjestene na 1)
Program je tocan, do na jedan detalj:
na pocetku si inicijalizirao prost1 i prost2 na 1, sto je ok (planiras ih stavit na nulu ako shvatis da nisu prosti). Ali oni ce postat nula cim se prvi put naidje na slozeni broj, i dalje ostaje na nuli. Rjesenje: trebalo bi staviti naredbe
prost1=1;
prost2=1;
unutar for petlje (odmah na pocetak), jer za svaki i provjeravas dal su i i n-1 i prosti (dakle iznova trebas ove pokazne varijable namjestene na 1)


[Vrh]
Korisnički profil Pošaljite privatnu poruku
satja
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 16. 05. 2010. (10:44:17)
Postovi: (F1)16
Sarma = la pohva - posuda
73 = 78 - 5

PostPostano: 23:00 sri, 17. 11. 2010    Naslov: Citirajte i odgovorite

stavi
[code:1]prost1 = prost2 = 1;[/code:1]
prije ovih dviju for petlji sa varijablom j.

naime, ako to ne napraviš, jednom kad ih postaviš na 0, uvijek će ostati 0, pa za neke kasnije i ćeš zaključiti da nisu prosti čak i ako jesu.

EDIT: vidim da me je pbakic preduhitrio.
stavi
Kod:
prost1 = prost2 = 1;

prije ovih dviju for petlji sa varijablom j.

naime, ako to ne napraviš, jednom kad ih postaviš na 0, uvijek će ostati 0, pa za neke kasnije i ćeš zaključiti da nisu prosti čak i ako jesu.

EDIT: vidim da me je pbakic preduhitrio.


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 23:06 sri, 17. 11. 2010    Naslov: Citirajte i odgovorite

Ima jos jedna greska.

Zadatak kaze: "provjerava da li se n može prikazati kao zbroj dva prosta broja". Gdje ce program ispisati da to nije moguce (ako ispadne da nije moguce, npr. za 11)?
Ima jos jedna greska.

Zadatak kaze: "provjerava da li se n može prikazati kao zbroj dva prosta broja". Gdje ce program ispisati da to nije moguce (ako ispadne da nije moguce, npr. za 11)?



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
pbakic
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 05. 10. 2009. (17:48:30)
Postovi: (143)16
Spol: muško
Sarma = la pohva - posuda
83 = 86 - 3

PostPostano: 23:12 sri, 17. 11. 2010    Naslov: Citirajte i odgovorite

Istina... ako nista, sigurni smo za parne :)
Istina... ako nista, sigurni smo za parne Smile


[Vrh]
Korisnički profil Pošaljite privatnu poruku
ceps
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 08. 10. 2010. (13:03:07)
Postovi: (13A)16
Sarma = la pohva - posuda
71 = 74 - 3

PostPostano: 23:16 sri, 17. 11. 2010    Naslov: Citirajte i odgovorite

Hvala vam! Joj, tako očito.
Ma ovo ispisivanje za slučaj da nije moguće sam izostavio, štajaznam, mislio sam da je lakše ljudima ako ga stavim u ovakvoj nekakvoj integralnoj verziji.
Hvala vam! Joj, tako očito.
Ma ovo ispisivanje za slučaj da nije moguće sam izostavio, štajaznam, mislio sam da je lakše ljudima ako ga stavim u ovakvoj nekakvoj integralnoj verziji.


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Phoenix
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 05. 2010. (18:46:07)
Postovi: (164)16
Sarma: -

PostPostano: 19:25 čet, 18. 11. 2010    Naslov: Citirajte i odgovorite

[quote="vsego"]Ima jos jedna greska.

Zadatak kaze: "provjerava da li se n može prikazati kao zbroj dva prosta broja". Gdje ce program ispisati da to nije moguce (ako ispadne da nije moguce, npr. za 11)?[/quote]

Piše da je unos dozvoljen za parne prirodne brojeve. Osim ako ste Vi možda htjeli reći da je tu provjeru obvezno napraviti, bez obzira na to što (za parne brojeve koji se mogu unijeti u okviru granica) znamo da se mogu prikazati?
vsego (napisa):
Ima jos jedna greska.

Zadatak kaze: "provjerava da li se n može prikazati kao zbroj dva prosta broja". Gdje ce program ispisati da to nije moguce (ako ispadne da nije moguce, npr. za 11)?


Piše da je unos dozvoljen za parne prirodne brojeve. Osim ako ste Vi možda htjeli reći da je tu provjeru obvezno napraviti, bez obzira na to što (za parne brojeve koji se mogu unijeti u okviru granica) znamo da se mogu prikazati?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 19:55 čet, 18. 11. 2010    Naslov: Citirajte i odgovorite

Aha, promaklo mi je to. :oops: Ipak ne znam te zadatke napamet.

Nema veze, ovo je ionako sporedna prepiska. Algoritam je objasnjen gore.
Aha, promaklo mi je to. Embarassed Ipak ne znam te zadatke napamet.

Nema veze, ovo je ionako sporedna prepiska. Algoritam je objasnjen gore.



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Flame
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 12. 08. 2009. (02:14:39)
Postovi: (53)16
Spol: muško
Sarma = la pohva - posuda
19 = 23 - 4

PostPostano: 15:57 ned, 21. 11. 2010    Naslov: Citirajte i odgovorite

[quote="pbakic"]Istina... ako nista, sigurni smo za parne :)[/quote]

jesmo za one prikazive u racunalu ;)
opcenito, nismo :)
pbakic (napisa):
Istina... ako nista, sigurni smo za parne Smile


jesmo za one prikazive u racunalu Wink
opcenito, nismo Smile


[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan