•SpiderMan
|
 |
« Răspunde #150 : Decembrie 24, 2012, 14:19:42 » |
|
Iti da TLE pentru ca algoritmul tau nu e eficient, trebuie folosit la problema asta Ciurul lui Eratosthenes.
|
|
|
Memorat
|
|
|
|
•DEYDEY2
Strain
Karma: 1
Deconectat
Mesaje: 49
|
 |
« Răspunde #151 : Ianuarie 11, 2013, 15:36:59 » |
|
iau 3 TLE-uri... ce as mai putea optimiza? 
|
|
|
Memorat
|
|
|
|
•visanr
|
 |
« Răspunde #152 : Ianuarie 11, 2013, 15:54:03 » |
|
Iei 100 daca faci: if(!prim[i]) { nr++; if(nr == k + 1) return i;
|
|
|
Memorat
|
|
|
|
•DEYDEY2
Strain
Karma: 1
Deconectat
Mesaje: 49
|
 |
« Răspunde #153 : Ianuarie 11, 2013, 22:16:55 » |
|
Multumesc! 
|
|
|
Memorat
|
|
|
|
•alexandru70
Strain
Karma: -7
Deconectat
Mesaje: 20
|
 |
« Răspunde #154 : Martie 24, 2013, 13:29:41 » |
|
Se poate uita cineva si peste sursa mea? Iau 70p pe ea, si din cate am reusit eu sa imi dau seama este ca imi sare niste numere prime de la 10000 in sus, si nu pot sa imi dau seama de ce. http://www.infoarena.ro/job_detail/925090
|
|
|
Memorat
|
|
|
|
•Balescu_Ovidiu
Strain
Karma: 0
Deconectat
Mesaje: 1
|
 |
« Răspunde #155 : Februarie 21, 2014, 13:12:43 » |
|
Se poate uita cineva la sursa mea, scrisa mai jos? Imi da 50 de puncte fiindca la ultimele 5 teste imi iese din timp. Pana acum nu am reusit sa gasesc o solutie sa mearga mai repede. #include<stdio.h> #include<stdlib.h> unsigned long k,d,i,q=1,n=3,N; unsigned a[99988]; short flag=1; int main() { FILE*f=fopen("prim.in","rb"); fscanf(f,"%lu",&k); fclose(f); FILE*g=fopen("prim.out","wb"); if(k>1) { while(q<k) { flag=0; for(d=3;d*d<=n&&!flag;d+=2) if(n%d==0) flag=1; if(flag==0) { q++; a[q]=n; } n+=2; } N=n; while(flag==0) { n+=2; for(d=N;d*d<=n&&!flag;d+=2) if(n%d==0) flag=1; if(flag==1) for(i=2;i<=k&&flag;i++) if(n%a[i]==0) flag=0; } fprintf(g,"%ld",n); } else fprintf(g,"%d",9); fclose(g); return 0; }
|
|
|
Memorat
|
|
|
|
•tudormaxim
Strain
Karma: 0
Deconectat
Mesaje: 4
|
 |
« Răspunde #156 : Septembrie 02, 2014, 22:57:29 » |
|
pe ultimele 6 teste iau TLE...am neaparat nevie de optimizare pe biti la ciurul lui erastostene ca sa iua 100?
|
|
|
Memorat
|
|
|
|
|
•sulzandrei
Strain
Karma: -3
Deconectat
Mesaje: 28
|
 |
« Răspunde #158 : Martie 01, 2015, 22:35:21 » |
|
Am aici  o demonstratie facuta de mine pt. a sustine ca cel mai mic numar neprim nedivizibil prin primele k numere prime e al k+1 numar prim la patrat, nus daca e corecta ce ziceti? 
|
|
« Ultima modificare: Martie 01, 2015, 23:01:09 de către FMI-Tanase Mihai Andrei »
|
Memorat
|
|
|
|
•Eberardo
Strain
Karma: -2
Deconectat
Mesaje: 4
|
 |
« Răspunde #159 : Martie 01, 2015, 22:42:22 » |
|
Da...ce mai demonstratie ai boss..e inversul verificarii daca un numar e prim. E corect,trebuie afisat al k+1-lea numar prim,ceea ce poti observa din exempli,si daca nu te-ai convins mai iei cateva si observi ca asta-i 
|
|
|
Memorat
|
|
|
|
•Dupree7
Strain
Karma: -1
Deconectat
Mesaje: 4
|
 |
« Răspunde #160 : Septembrie 02, 2015, 12:23:26 » |
|
Daca introduc valori in prim.in imi da raspunsul corect dar nu inteleg de ce cand il uploadez primesc 0 puncte deoarece toate raspunsurile sunt incorecte. Ma poate ajuta cineva? #define lim 1000000 #include <fstream> using namespace std;
bool prim [lim];
fstream f("prim.in"); ofstream g("prim.out");
int main() { int i,j,c=0,k; f>>k; for(i=2;i<lim;i++) { if(prim[i]==0) { c++; for(j=i*2;j<=lim;j+=i) prim[j]=1; } if(prim[i]==0) if(c==k+1){ g << i*i; return 0;} } }
|
|
|
Memorat
|
|
|
|
•Slevy
Strain
Karma: 0
Deconectat
Mesaje: 13
|
 |
« Răspunde #161 : Octombrie 24, 2015, 15:35:36 » |
|
Am facut problema initial cu Erastotene si am alocat static un tablou de 1.500.000 de elemente (bool eras[1500000]) si primeam killed by signal 11 pe primele 2 teste si 80p.. apoi am alocat dinamic tabloul eras (bool *eras; eras = new bool[1500000]  si am luat 100p. Vreo idee de ce diferenta asta ?? o fi din cauza dimensiunii prea mari a tabloului ??
|
|
|
Memorat
|
|
|
|
•CrystyAngel
Strain
Karma: 0
Deconectat
Mesaje: 4
|
 |
« Răspunde #162 : Martie 30, 2016, 08:15:50 » |
|
Am observat ca evaluatorul nu accepta din cstdio (cand folosesc fscanf si fprintf) I64d, am luat incorect pe teste si am schimbat in %lld si a dat bine
|
|
|
Memorat
|
|
|
|
|
|
•DanielRusu
Strain
Karma: 0
Deconectat
Mesaje: 10
|
 |
« Răspunde #165 : Ianuarie 05, 2017, 16:36:33 » |
|
e indexat de la 0 la DIM - 1, si atunci cand ajungi exact in DIM, accesezi aiurea, ceea ce conduce la greseli.
Cat noroc am avut  ..mersi mult 
|
|
|
Memorat
|
|
|
|
•viorel12
Strain
Karma: 0
Deconectat
Mesaje: 1
|
 |
« Răspunde #166 : Ianuarie 07, 2018, 17:23:37 » |
|
#include <iostream> using namespace std; long i=2,k,n=1,ok=1; long sum(int i) { int j,s=0; for(j=1;j<i;j++) if(i%j==0) s=s+j; return s; } int main() { cout<<"k="; cin>>k; while(n<=k) { if(i==sum(i)+1) n++; else i++; } cout<<n; while(i<=LONG_MAX||ok==1) { if(n%i==0&&i==sum(i)+1) i++; else ok=0; } cout<<i; return 0; } de ce nu merge?
|
|
|
Memorat
|
|
|
|
•alexcojocaru02
Strain
Karma: 0
Deconectat
Mesaje: 2
|
 |
« Răspunde #167 : Ianuarie 28, 2019, 12:51:27 » |
|
e normal sa am un timp de 0,0000123? 
|
|
|
Memorat
|
|
|
|
•alexcojocaru02
Strain
Karma: 0
Deconectat
Mesaje: 2
|
 |
« Răspunde #168 : Ianuarie 28, 2019, 12:51:47 » |
|
e normal sa am un timp de 0,0000123? 
|
|
|
Memorat
|
|
|
|
|