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 877 korisnika na forumu :: 70 registrovanih, 5 sakrivenih i 802 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: 037, 6footboy, A.R.Chafee.Jr., aleph_one, Apok, ArmFPGA, awathorn, Baždaranac, Betty25, bojankrstc, bozo13, Comyymoc, debeli, dule10savic, dunavzed, ElGenius, EXIT78, Glauber, Hans Gajger, Igor Antonic, Igritelj, Ikica977, IQ116, istokzapad, jodzula, JOntra, Kajzer Soze, Kruger, laurusri, Marko Marković, mercedesamg, MikeHammer, milanpb, milenko crazy north, Miler88, moldway, Motocar, museum, Mzee, nebidrag, nefs, pceklic, Pekman, Pilence, ping15, pisac12, pzoca, RD84, sap, Semberija, Sirius, Spinosa, Srki98, stefan95, stegonosa, synergia, t_p_, Tanjagre, tomo2, tritonus, Valter071, Veless, Velizar Laro, vjetar, voja64, Wehicle, zeka013, ZetaMan, Zoran1959, Žrnov