Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Eratostenovo sito...

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Eratostenovo sito...

[ Pregleda: 5776 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Kushwais

Član broj: 160006
Poruke: 30
*.6.11.vie.surfer.at.



Profil

icon [Zadatak] Eratostenovo sito...08.11.2007. u 20:01 - pre 201 meseci
Zasto ovaj programm nece da radi ?

Code:
#include<iostream>
#include<cmath>
using namespace std;
int main ()
{
    int x,test;
    while(test) {
                
    bool prim[x];
    cout<<" Geben sie zahl ein " << endl;
    cin >>x;
    prim[0]=false;
    prim[1]=false;
    for(int c=2;c<x;++c)
    prim[c]= true;
    for(int c=2; c<sqrt((double)x); c=c+1)
    if (prim[c])
    for (int j=2*c;j<x; j=j+c)
    prim[j]=false;
    for (int c=0;c<x;c=c+1)
    if (prim[c]);
    cout<< c << endl;
    cout<<"Noch ein mall? Ja=1 Nein=0"<< endl;
    cin >>test;}
    return 0;
}


Ako neko ima bolju ideju za izradu ovog programa , bicu mu zahvalan !
Hvala unapred
 
Odgovor na temu

osmania
Panet

Član broj: 26316
Poruke: 773
*.20.11.vie.surfer.at.



+7 Profil

icon Re: [Zadatak] Eratostenovo sito...08.11.2007. u 20:32 - pre 201 meseci
sta program treba da radi????
ako je to sto ja kontam da treba da odredis brojeve koji su djeljivi sami sa sobom ili sa 1. (prosti brojevi) preko Erato zakona onda treba da drugacije to postavis.
Treba da uneses u jedan niz brojeve... od 2 do koliko hoces nprj do 200
i treba da nadjes sada sve proste brojeve od 2 do dvijesto.
eh sada kako to srediti:

prvo: napravi niz u koji ces unijeti brojeve od 2 do 200
drugo: napravi petlju koja ce da ide od 2 do dvijeso i u toj petlji treba da stavis jos jednu petlju kojoj ces eliminisati ne proste brojeve a[ i ]=0.
trece samo izlistas ono sto je ostalo u nizu
i gotovo...
Code:

i = 2;
    while(i * i <= n) {
      if(prim[ i ] > 1) {
    
      //nadjen prostak
    j = 2;
       
       //eliminacija ne prostih brojeva 
    while(j * i <= n) {
      prim[j * i] = 0;
      j++;
    }
      }
      i++;
    }

to ti je to otprilike mada imas i preko for je mozda malo lakse stavis dvije for petlje jednu u drugoj i ispitivas prkeo if sta i kako. da bi smanjio broj vrtenja petlji uzmes da petlja ide ne do n nego do korijen iz n (sgrt(n)) jer od 2 do korijena su svi brojevi koji su mogu da dijele taj broj jer nesto na kvadrat daje taj broj to je maximum.



[Ovu poruku je menjao X Files dana 08.11.2007. u 23:25 GMT+1]
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Eratostenovo sito...

[ Pregleda: 5776 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.