Zadatak: naci broj sa najvise delilaca

2

Zadatak: naci broj sa najvise delilaca

offline
  • Pridružio: 10 Avg 2006
  • Poruke: 1009
  • Gde živiš: Beograd

Napisano: 16 Apr 2010 0:09

Evo mog koda,koji je prvo previse komplikovan cini mi se,drugo ne radi,izbacuje mi gresku cim malo veci broj ubacim,a i ima problem neki sa velicinom ovog "a" arraya.

Evo koda,pa mozda ako neko ima ideje. Glup sam za ovo,sta cu XD

#include <cstdlib> #include <iostream> #include <cmath> using namespace std; long n; int main(int argc, char *argv[]) {     cin >> n;         long a[int(sqrt(n))];     int brojprostih = 0;         for (long i=2; i<sqrt(n); i++)     {         bool prost = true;         for (long j=0; j<=brojprostih && prost; j++)         {             if (i%a[j]==0) prost = false;         }                 if (prost)         {            a[brojprostih] = i;            brojprostih++;                  }     }         long bnajvisedel = 0;     int najvisedel = 0;         for (int i=0; i<sqrt(n); i++)     {         int brdel = 0;         for (int j=0;j<brojprostih && j<=i/2;j++)         {             if (i%j==0) brdel++;         }                 if (brdel > najvisedel)         {            najvisedel = brdel;            bnajvisedel = i;                  }     }         najvisedel = (najvisedel + 1) * 2;         cout << bnajvisedel << endl;     cout << najvisedel << endl;*/         system("PAUSE");     return EXIT_SUCCESS; }

Dopuna: 16 Apr 2010 0:10

soxxx ::Ovo ti moze pomoci: [Link mogu videti samo ulogovani korisnici]

Veceras cu to da pogledam,mozda mi da neku ideju Very Happy



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • soxxx 
  • Prijatelj foruma
  • Pridružio: 25 Maj 2005
  • Poruke: 1482
  • Gde živiš: Gracanica, Kosovo

Izgleda da je karlos na dobrom putu. Smile Necu se praviti da ovo razumem, ukljucio sam se u zadatak iz radoznalosti. Ipak, izgleda da je ovo veoma opsirna tema sa dosta opcija i mnogo mozganja:

[Link mogu videti samo ulogovani korisnici] i [Link mogu videti samo ulogovani korisnici]

Kao i ove dve veoma interesantne teme:

[Link mogu videti samo ulogovani korisnici]
[Link mogu videti samo ulogovani korisnici]

Koliko vidim ovo je jedan od brzih algoritama: [Link mogu videti samo ulogovani korisnici]

(coveka znam kao autora izvanrednog djbdns softvera)

A evo i skripte (da skripte Smile) koju sam ja uspeo da sastavim. Napisana je u awk-u, i za 100.000 brojeva joj treba nesto vise od 14 sec na Celeronu, dok za milion brojeva "krlja" oko 7 minuta. Nisam isprobavao koje je vreme kad bi se prebacilo u C, ali ocekujem dobro poboljsanje. Mozda ti neki deo nje bude od pomoci (sintaksa je slicna C-u):

function delioc(n){ maxfaktor=1 minbroj=1    for(i=1; i<n; i++){       for(j=1; j <= sqrt(i); j++){          if(i % j == 0){             a[b++]=j             j==sqrt(i)?"":a[b++]=i/j          }          }       #printf("Delioci za %d su: \n", i)       #for (k in a) { print a[k] }; printf("Broj delioca: %d\n", b); print "\n"       if(maxfaktor<b && minbroj<i){          maxfaktor=b          minbroj=i;       }delete a;b=0    } } BEGIN{ delioc(ARGV[1])    print "Minbroj: ", minbroj, " i Maxfaktor: ", maxfaktor }
Postoje neke varijante izuzimanja odredjenih brojeva i slicno, ali to vec prevazilazi moju zelju za matematikom. Wink Sve najbolje i nadam se da ce ti neki od ovih linkova pomoci.



offline
  • jv11 
  • Novi MyCity građanin
  • Pridružio: 25 Maj 2012
  • Poruke: 1

Da li je neko slucajno resio ovaj zadatak?I mene muci vreme,kod mi je ispravan.

Ko je trenutno na forumu
 

Ukupno su 1943 korisnika na forumu :: 58 registrovanih, 6 sakrivenih i 1879 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 20624 - dana 04 Apr 2026 04:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: ajo baba, ALEKSICMILE, aramis s, Bbbggg1979, bojank, Bojke549, bokicacar, Boris90, cenejac111, Cicumile, Dannyboy, Dixtrix, dj.ape, Djota1, Dogma21, dolinalima, Dr.Strangelove, eagle.rs, havoc995, Holy Saber, igorkozar83, ISOF, ivan_8282, kaput21, Komder, Krajišnik97, mackenzie, MarijaC84, Mihajlo, mikrimaus, Miler88, milimoj, milos.cbr, mirkoro, Mrav Obrad, nebkv, nikolapetkovic, Njubara, opt1, Pekman, Podljub, proka89, raster12, ruso, samoulogovankorisnik, SDsd, skok, Sone0883, Srki98, Stevan Visoki, Tafocus, Tandrkalo, Tester, Timočka Divizija, vathra, Voice1, vrgudinac, Zeljo980