andreit1
Vizitator
|
|
« Răspunde #25 : Martie 15, 2006, 22:52:31 » |
|
Ai grija la atribuiri de genul x=y*y unde x este long long si y este long pentru ca s-ar putea sa nu mearga. Asta bineinteles daca esti sigur ca nu ai gresit nimic altceva.
|
|
|
Memorat
|
|
|
|
•bogdan2412
|
|
« Răspunde #26 : Martie 16, 2006, 09:42:19 » |
|
fa pe numere mari si sigur merge Sau ati putea sa nu va mai pierdeti timpul cu numere mari si sa va debugati programu E o singura operatie de inmultire care trebuie facuta pe long long si nu vad absolut nici o logica pentru care ati face pe numre mari... Al 100.000-lea numar prim e in jurul valorii de 1.000.000 din cate tin minte... In cazul in care greseala este cea care a sugerat-o andreit1 (si e o posibilitate foarte mare ca asta sa fie avand in vedere ca ai WA doar pe testele 6-10 ) trebuie sa faceti o simpla conversie ca sa-ti mearga programu: x = (long long)y * (long long)y sau x = (long long)y * y... Sfat: Nu cereti ajutor pe forum imediat ce nu luati 100 puncte... Testati-va programu pe teste mari... Daca greseala ta era la conversia asta atunci daca dadeai testu 100.000 observai ca-ti da un numar negativ sau 0 sau un numar cu mult prea putine cifre...
|
|
|
Memorat
|
|
|
|
Xabre
Vizitator
|
|
« Răspunde #27 : Martie 17, 2006, 17:28:09 » |
|
mersi ...asta era problema_>am luat 100p. N-am putut testa pe numere mari, ca am Borland C++ 4.02 si nu pot declara variabile de tip long long si nici siruri de peste 32000.
|
|
|
Memorat
|
|
|
|
•Marius
|
|
« Răspunde #28 : Martie 17, 2006, 20:21:04 » |
|
N-am putut testa pe numere mari, ca am Borland C++ 4.02 si nu pot declara variabile de tip long long si nici siruri de peste 32000. Neutral Poate te ajuta http://info.devnet.ro/articole.php?page=art&art=87 !
|
|
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
spx4
Vizitator
|
|
« Răspunde #29 : Martie 19, 2006, 22:36:38 » |
|
p_100000= 1318699 http://ftp://ftp.externet.hu/pub/mirror/sac/educult/prime12.zipaici e lista primelor 100.000 nr prime. puteti are in jur de 800k. daca e posibil puteti sa o folositi...in sursa cu ceva precompilat dar... bineinteles nu ar fi nici pe departe o rezolvare ortodoxa.
|
|
|
Memorat
|
|
|
|
•Omega91
Strain
Karma: 0
Deconectat
Mesaje: 36
|
|
« Răspunde #30 : Februarie 19, 2007, 10:40:25 » |
|
mie mi-a mers foarte frumusel problema, folosind the ciur, pe un vector de tip bool cu 1500000 elemente, dak foloseam 1000000 primeam 50 pct. Si mai klumea a fost k n-am folosit inmultirea pe vectori: cand ajungeam la numarul cerut il afisam cu f2<<i*i; unde f2 era ofstream f2("prim.out"); si "i" era numarul al cariu patrat trebuia afisat. asta a fost tot.
|
|
|
Memorat
|
|
|
|
•Florian
|
|
« Răspunde #31 : Februarie 22, 2007, 20:58:52 » |
|
deci....m`am uitat pe ambele pagini la numere prime.....am incercat sa respect toate sfaturile...am facut ciurul lui eratostene corect...dar numai 50 de puncte.... ...dar tot iau TLE pe ultimile 5 teste...oare de ce...? yo`s incepator....si as vrea sa ma ajute cineva...dak vrea..please...
|
|
|
Memorat
|
|
|
|
•k_ounu_eddy
|
|
« Răspunde #32 : Februarie 23, 2007, 18:38:29 » |
|
Stau de nush cate zile la probl asta,si tot nush ce am gresit.Iau 20 de punct.Am implementat corect ciurul.Ca sa fiu sigur ca nu am gresit la atribuiri,am declarat toate variabilele long long(in afara de vectorul pe care aplic ciurul,asta l-am facut bool).Nu pot sa aplic testele pe numere mari,ca nush cum sa fac in gnu c++ sa pot aloca un vector de 1400000 de elemente(al 101000 nr prim nu depaseste aceasta limita).Poate cineva macar sa imi arate cum pot sa fac asta,ca pe urma vad eu ce gresesc?
|
|
|
Memorat
|
|
|
|
•cos_min
|
|
« Răspunde #33 : Februarie 23, 2007, 19:15:03 » |
|
Nu ai nevoie de numere mari, merge in long long.
|
|
|
Memorat
|
vid...
|
|
|
•k_ounu_eddy
|
|
« Răspunde #34 : Februarie 23, 2007, 19:36:04 » |
|
Nu am zis ca nu imi "intra" in long long ,ci ca nu merge sa aloc un vector cu 1400000 de elemente(necesare pt a implementa ciurul)
|
|
|
Memorat
|
|
|
|
•astronomy
|
|
« Răspunde #35 : Februarie 23, 2007, 20:11:41 » |
|
Da putine detalii, eventual pune un cod sursa cu felul in care ai incercat sa declari un astfel de vector si nu a mers.. E destul de dubios ce spui tu, daca nu ai setat manual vreo limita la memorie nu vad de ce nu ar merge.
|
|
|
Memorat
|
|
|
|
•k_ounu_eddy
|
|
« Răspunde #36 : Februarie 23, 2007, 20:46:18 » |
|
#include<fstream> #define MarimeVector 1400000 using namespace std;
ifstream fin("prim.in"); ofstream fout("prim.out");
int main() { long long K,rezultat; fin>>K;K++;
bool NumerePrime[MarimeVector]; for(long long i=2;i<MarimeVector;i++) NumerePrime[i]=1; /... } Asta e sursa [LE]Am incercat sa rulez executabilul,si sa introduc eu manual un numar K.Imi zice Sigsegv,Stack Fault...
|
|
« Ultima modificare: Februarie 23, 2007, 20:54:10 de către Iacob Eduard »
|
Memorat
|
|
|
|
•filipb
|
|
« Răspunde #37 : Februarie 23, 2007, 20:54:31 » |
|
Incearca sa declari global bool NumerePrime[MarimeVector];
|
|
|
Memorat
|
|
|
|
•k_ounu_eddy
|
|
« Răspunde #38 : Februarie 23, 2007, 20:59:23 » |
|
In sfarsit imi merge si mie...Variabilele locale sunt alocate in stiva,asa ca de asta primeam mesajul de eroare.Credeam ca si in stiva poti sa aloci asa mult.Multumesc mult
|
|
|
Memorat
|
|
|
|
•devilkind
|
|
« Răspunde #39 : Februarie 23, 2007, 21:21:16 » |
|
stiva e de 1 MB. Atunci cand iti calculezi memoria e bine sa faci 2 calcule separate - unul ptr memoria globala si unul ptr stiva. De asemenea e bine sa eviti situatii la limita gen 1000kb de memorie in stiva.
|
|
|
Memorat
|
|
|
|
•c_e_manu
|
|
« Răspunde #40 : Martie 21, 2007, 19:01:38 » |
|
Deci...vectorul trebuie sa fie de aprox. 1300000 elemente si probabil ca Borland C++ va da eroare sau un raspuns gresit, dar pe infoarena va da Ok! Cel putin asa s-a intamplat la mine. Succes!
|
|
|
Memorat
|
|
|
|
•cos_min
|
|
« Răspunde #41 : Martie 21, 2007, 19:02:30 » |
|
In borland c++ nu dispui de atata memorie
|
|
|
Memorat
|
vid...
|
|
|
•svalentin
|
|
« Răspunde #42 : Martie 21, 2007, 19:09:10 » |
|
|
|
|
Memorat
|
|
|
|
•c_e_manu
|
|
« Răspunde #43 : Martie 21, 2007, 23:01:53 » |
|
Ms! Dar puteai sa zici mai devreme
|
|
|
Memorat
|
|
|
|
•CezarMocan
|
|
« Răspunde #44 : Martie 22, 2007, 08:30:57 » |
|
Sau puteai tu sa cauti mai devreme prin site, ca sigur gaseai.
|
|
|
Memorat
|
|
|
|
•florea
Strain
Karma: -3
Deconectat
Mesaje: 6
|
|
« Răspunde #45 : Aprilie 26, 2007, 13:07:26 » |
|
Cine ma poate ajuta si pe mine sa imi explice putin ciurul lui eratostene?.....sau daca stiti vreun link va rog sa imi dati si mie
|
|
|
Memorat
|
|
|
|
•cos_min
|
|
« Răspunde #46 : Aprilie 26, 2007, 13:17:53 » |
|
|
|
|
Memorat
|
vid...
|
|
|
•florea
Strain
Karma: -3
Deconectat
Mesaje: 6
|
|
« Răspunde #47 : Aprilie 26, 2007, 13:23:12 » |
|
ms cos-min...dar un link cu ciurul lui erathostene in pascal nu ai?
|
|
|
Memorat
|
|
|
|
•peanutz
|
|
« Răspunde #48 : Aprilie 26, 2007, 13:49:35 » |
|
Incearca sa intelegi c, vei da des peste surse scrise in c.. Cel putin primele 2-3 variante ale ciurului nu au nimic de neinteles.. La ultimele e bine sa stii ca "<<" si ">>" sunt operatii pe biti care exista si in pascal shr, shl(parca)..
|
|
|
Memorat
|
....staind....
|
|
|
•silviug
|
|
« Răspunde #49 : Aprilie 26, 2007, 21:53:04 » |
|
Incearca sa intelegi c, vei da des peste surse scrise in c.. Cel putin primele 2-3 variante ale ciurului nu au nimic de neinteles.. La ultimele e bine sa stii ca "<<" si ">>" sunt operatii pe biti care exista si in pascal shr, shl(parca)..
Just a by the way: codul din articol e in Java
|
|
|
Memorat
|
"Don't gain the world and lose your soul, wisdom is better than silver or gold." [Bob Marley - Jamaican reggae musician & singer (1945 - 1981)]
|
|
|
|