Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
Sk@łR Forumaš(ica)
Pridružen/a: 11. 02. 2004. (19:55:24) Postovi: (12)16
|
|
[Vrh] |
|
ahri Forumaš(ica)
Pridružen/a: 19. 11. 2003. (23:16:07) Postovi: (193)16
|
Postano: 15:02 sri, 25. 2. 2004 Naslov: |
|
|
sito_metoda:
[code:1]
ispisi(1);
i=2
ponavljaj
za svaki x > i , ako je x djeljivo s i, oznaci da x nije prost
ispisi(i)
nadji iduci veci broj od i, za kojeg nisi rekao da nije prost
dok i <n;
[/code:1]
c kod (postavimo sve a[i] na nulu prije koda)
[code:1]
printf("1 ");
for (i=2;i<n;) {
printf("%d ",i);
for (j=i*2;j<n;j+=2)
if (j/i == 0) a[j]=1; // tu oznacimo da j nije prost
for (i+=1;i<n && !a[i];i++)
// tu povecavamo i dok ne predjemo n, ili ne nadjemo neki prosti i.
}
[/code:1]
brute force metoda:
(za svaki broj provjeri je li djeljiv s nekim brojem manjim od sebe.
dovoljno je ici do korjena).
[code:1]
printf("1 2 ");
for (i=3;i<n;i++) {
x=0;
for (j=2; j*j < n;j++)
if (i/j==0) {
x=1;
break;
}
if (!x) printf("%d ", i);
}
[/code:1]
sito_metoda:
Kod: |
ispisi(1);
i=2
ponavljaj
za svaki x > i , ako je x djeljivo s i, oznaci da x nije prost
ispisi(i)
nadji iduci veci broj od i, za kojeg nisi rekao da nije prost
dok i <n;
|
c kod (postavimo sve a[i] na nulu prije koda)
Kod: |
printf("1 ");
for (i=2;i<n;) {
printf("%d ",i);
for (j=i*2;j<n;j+=2)
if (j/i == 0) a[j]=1; // tu oznacimo da j nije prost
for (i+=1;i<n && !a[i];i++)
// tu povecavamo i dok ne predjemo n, ili ne nadjemo neki prosti i.
}
|
brute force metoda:
(za svaki broj provjeri je li djeljiv s nekim brojem manjim od sebe.
dovoljno je ici do korjena).
Kod: |
printf("1 2 ");
for (i=3;i<n;i++) {
x=0;
for (j=2; j*j < n;j++)
if (i/j==0) {
x=1;
break;
}
if (!x) printf("%d ", i);
}
|
_________________
Zadnja promjena: ahri; 15:04 sri, 25. 2. 2004; ukupno mijenjano 1 put.
|
|
[Vrh] |
|
veky Forumaš(ica)
Pridružen/a: 09. 12. 2002. (19:59:43) Postovi: (5B0)16
Lokacija: negdje daleko...
|
|
[Vrh] |
|
n0mad Forumaš(ica)
Pridružen/a: 16. 02. 2004. (12:58:32) Postovi: (B3)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 15:45 sri, 25. 2. 2004 Naslov: |
|
|
Ahri, 1 nije prosti broj! :roll:
Takodjer, ne priznajemo konstrukciju "[i]za svaki x > i[/i]" (x nije nikako kvantificiran). :?
[quote="jaZz"][code:1]for (i = 2; i < N; i++) a[i] = 1;
for (i = 2; i < N; i++)
if (a[i])
for (j = i; j < N/i; j++) a[i*j] = 0;[/code:1]
da, da, sedgewick rulez...najbolje je pocet ucit iz pravih knjiga...[/quote]
Ovo bas i nije primjenjivo jer covjek pita za prvih [i]n[/i] prostih brojeva, a ne za sve manje od nekog [i]n[/i]. :-k
Inace, zadaci ponekad hoce reci "[i]Nije dozvoljeno koristenje dodatnih nizova[/i]", pa je za potrebe ispita dobro znati manje optimizirane verzije (aka Ahrijva "brute force" i ovo sto je Veky napisao). ;)
Ahri, 1 nije prosti broj!
Takodjer, ne priznajemo konstrukciju "za svaki x > i" (x nije nikako kvantificiran).
jaZz (napisa): | Kod: | for (i = 2; i < N; i++) a[i] = 1;
for (i = 2; i < N; i++)
if (a[i])
for (j = i; j < N/i; j++) a[i*j] = 0; |
da, da, sedgewick rulez...najbolje je pocet ucit iz pravih knjiga... |
Ovo bas i nije primjenjivo jer covjek pita za prvih n prostih brojeva, a ne za sve manje od nekog n.
Inace, zadaci ponekad hoce reci "Nije dozvoljeno koristenje dodatnih nizova", pa je za potrebe ispita dobro znati manje optimizirane verzije (aka Ahrijva "brute force" i ovo sto je Veky napisao).
_________________ 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.
|
|
[Vrh] |
|
veky Forumaš(ica)
Pridružen/a: 09. 12. 2002. (19:59:43) Postovi: (5B0)16
Lokacija: negdje daleko...
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
veky Forumaš(ica)
Pridružen/a: 09. 12. 2002. (19:59:43) Postovi: (5B0)16
Lokacija: negdje daleko...
|
Postano: 17:28 sri, 25. 2. 2004 Naslov: |
|
|
[quote="jaZz"]for (i = 2; i < N; i++) a[i] = 1;
for (i = 2; i < N; i++)
if (a[i])
for (j = i; j < N/i; j++) a[i*j] = 0;
da, da, sedgewick rulez...najbolje je pocet ucit iz pravih knjiga...[/quote]
Ma sigurno...
[code:1]<< NumberTheory`NumberTheoryFunctions`
NestList[NextPrime,2,Input@"Koliko?"-1][/code:1]
će učiniti ono što treba učiniti, a
[code:1]perl -le'(7x$_)=~/^(77+?)\1+$/||print for 2..shift' 80[/code:1] će sasvim ok raditi ovo što si ti pokušao gore. Za alternativni pristup pogledaj "Predzadnja znamenka umnoška prvih 100 prostih brojeva" na http://web.math.hr/~veky/unix/perlgallery.html .
jaZz (napisa): | for (i = 2; i < N; i++) a[i] = 1;
for (i = 2; i < N; i++)
if (a[i])
for (j = i; j < N/i; j++) a[i*j] = 0;
da, da, sedgewick rulez...najbolje je pocet ucit iz pravih knjiga... |
Ma sigurno...
Kod: | << NumberTheory`NumberTheoryFunctions`
NestList[NextPrime,2,Input@"Koliko?"-1] |
će učiniti ono što treba učiniti, a
Kod: | perl -le'(7x$_)=~/^(77+?)\1+$/||print for 2..shift' 80 | će sasvim ok raditi ovo što si ti pokušao gore. Za alternativni pristup pogledaj "Predzadnja znamenka umnoška prvih 100 prostih brojeva" na http://web.math.hr/~veky/unix/perlgallery.html .
|
|
[Vrh] |
|
n0mad Forumaš(ica)
Pridružen/a: 16. 02. 2004. (12:58:32) Postovi: (B3)16
|
|
[Vrh] |
|
veky Forumaš(ica)
Pridružen/a: 09. 12. 2002. (19:59:43) Postovi: (5B0)16
Lokacija: negdje daleko...
|
|
[Vrh] |
|
ahri Forumaš(ica)
Pridružen/a: 19. 11. 2003. (23:16:07) Postovi: (193)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
ahri Forumaš(ica)
Pridružen/a: 19. 11. 2003. (23:16:07) Postovi: (193)16
|
|
[Vrh] |
|
|