infoarena

infoarena - concursuri, probleme, evaluator, articole => Arhiva de probleme => Subiect creat de: ditzone din Ianuarie 21, 2006, 17:06:28



Titlul: 171 Sum
Scris de: ditzone din Ianuarie 21, 2006, 17:06:28
Aici puteţi discuta despre problema Sum (http://infoarena.ro/problema/sum).


Titlul: help
Scris de: Barca Cristian Mihai din Ianuarie 22, 2006, 00:13:50
iau intr-una la testul 9 - 0 pcte....restul imi merg! poate sa ma ajute cineva?
este singurul care imi iese din timp si nush de ce?! :cry:
...si sunt sigur ca nu e din cauza ciurului ca am observat ca testele sunt km mici si merge sa scoti un ciur si pana la 9000 :wink: ...ma poate ajuta cineva sa imi dau seama de vreo greseala pe care o fac?  O:)


Titlul: 171 Sum
Scris de: Stefan-Alexandru Filip din Ianuarie 22, 2006, 11:23:51
Si eu m-am chinuit destul de mult la testul 9, si pana nu am pus pe stiva main-ului un vector de constante cu numerele prime pana la 320 nu am reusit sa intru in timp.


Titlul: 171 Sum
Scris de: cristi8 din Ianuarie 22, 2006, 13:45:27
eu mi-am trimis verificatorul  sa vad daca merge bine, si pe testul 9 lua WA.
cauza era evdenta.. trebuia sa folosesc long long la anumite variabile.. suma aia poate deveni foarte mare.. :D

PS: da, l-am trecut (testul 9) cu un program de complexitate N*X*lgX. probabil are n-ul mic.


Titlul: 171 Sum
Scris de: Barca Cristian Mihai din Ianuarie 24, 2006, 00:26:38
am luat 100....am pus vect de ct in main pana la 320 si a mers...mersi de ajutor! :thumbup:


Titlul: 171 Sum
Scris de: Bondane Cosmin din Ianuarie 29, 2006, 19:02:55
io nu inteleg enuntu ... pote careva sa imi explice pe exemplu dat ?? plz


Titlul: 171 Sum
Scris de: Filip Cristian Buruiana din Ianuarie 29, 2006, 21:37:29
De exemplu, pentru 5: toate numerele p prime cu 5 ( cmmdc(p, 5) = 1 ) de la 1 pana la 2*5 = 10 sunt (1, 2, 3, 4, 6, 7, 8, 9). Suma lor este 40.
Toate numerele prime cu 6 de la 1 pana la 12 sunt (1, 5, 7, 11). Suma lor este 24.


Titlul: 171 Sum
Scris de: Bondane Cosmin din Ianuarie 30, 2006, 18:22:37
ms mult ... acum am inteles 10X :thumbup:


Titlul: 171 Sum
Scris de: Gogu Marian din Februarie 08, 2006, 17:41:21
In caz ca lucrati in pascal si aveti vreo 75 de puncte din cauza unor TLE-uri, fara sa stiti cum sa mai optimizati, incercati sa afisati numerele asa:

Cod:
procedure scrie(k:qword);
var i,nr:longint;
d:qword;
st:string[15];
c:array[1..15] of byte;
begin
nr:=0;
while (k>0) do
 begin
 inc(nr);
 d:=k div 10;
 c[nr]:=k-10*d+48;
 k:=d;
 end;
for i:=nr downto 1 do st[nr-i+1]:=chr(c[i]);
st[0]:=chr(nr);
writeln(st);
end;


Stiu ca e cam tampit dar mi-am dat seama ca asa e mai rapid decat read pe versiunea de compilator de pe infoarena din cauza unor operatii mod care le face prost.


Titlul: 171 Sum
Scris de: Vlad Berteanu din Februarie 08, 2006, 17:52:26
:shock:  Sunt SHOCAT.... Nu pot sa cred...am luat 100 dupa ce am scris afisarea ta Mariane....este incredibil....multumesc
 Sa zicem ca ti se intampla chestia asta la preOni..25 de puncte inseamna enorm la cat de strans este clasamentul.
  P.S Rog echipa devnet sa analizeze un pic problema cu evaluatorul de pascal...am o groaza de probleme la care am 80-90...la unele am scris in C si am luat 100.....

 #-o


Titlul: 171 Sum
Scris de: Tiberiu-Lucian Florea din Februarie 08, 2006, 18:44:27
Noi incercam sa oferim conditii cat mai apropiate de cele de la olimpiade, si, chiar daca ne place sau nu, in general folosirea limbajului de programare Pascal reprezinta un dezavantaj foarte mare. Se pot lua 100 de puncte si in Pascal, dar eforturile pe care trebuie sa le depuneti pentru acest lucru ar trebui sa va stimuleze sa invatati C si C++.


Titlul: 171 Sum
Scris de: Gogu Marian din Februarie 08, 2006, 19:14:26
Eu de exemplu am invatat si C si pot spune ca in conditii de olimpiada prefer pascalul. Imi este mai familiar si stiu sa ma folosesc de mici trucuri de limbaj. Pana nu ma perfectionez serios in C prefer sa raman la un limbaj in care am o experienta mai mare. Diferentele mici de timp intre compilatoare nu m-au impiedicat sa fac vreo problema complet decat pe infoarena.
De obicei optimizarile de compilator nu se poate masura cele facute manual.
Problemele pe care le au multi cu pascalul vin din cauza ca pe infoarena se compileaza cu o versiune de fpc cu ceva bug-uri.
Va promit ca daca faceti un upgrade la versiunea 2.0 nu ar mai trebui sa aiba lumea probleme ca nu le intra in timp afisatul datelor de exemplu, cum e cazul la sum si poligon2.


Titlul: 171 Sum
Scris de: Rus Cristian din Februarie 25, 2006, 09:32:56
ce inseamna indicatorul lui Euler?...e ceva remarcabil sau e pur si simplu o notatie?...ca nu am gasit nicaieri :-k


Titlul: 171 Sum
Scris de: u-92 din Februarie 25, 2006, 12:01:38
http://mathworld.wolfram.com/TotientFunction.html


Titlul: 171 Sum
Scris de: Condrea Andrei din Martie 07, 2006, 17:28:28
am si eu o intrebare: ce complexitate ar trebui sa aiba programul??....ca eu am O(n*n) si iau doar 45 de puncte.....in rest TLE...... :fighting:


Titlul: 171 Sum
Scris de: andreit1 din Martie 07, 2006, 17:54:54
Problema a fost data la o runda la concursul preONI. Solutiile oficiale le gasesti la pagina http://info.devnet.ro/articole.php .
Cauta pe acolo problema sum... o sa mai gasesti si alte lucruri interesante in articolele alea.


Titlul: Non-zero exit status.
Scris de: Alexandru Pana din Iunie 06, 2007, 06:16:13
Imi explica si mie cineva, va rog cum poate da non-zero exit status in freepascal ? :-s


Titlul: Răspuns: 171 Sum
Scris de: Bogdan Popescu din Decembrie 22, 2007, 23:09:50
I neeed help :)). Am implementat 2 solutii: 1 cu princiupiul includerii / excluderii - iau numa 80 de pcte cu 4 TLE si cu 2 cu indicatorul lui euler unde iau maxim 85 cu 3 TLE....cine ma ajuta putin sa scot 100 :D


Titlul: Răspuns: 171 Sum
Scris de: Andrei Grigorean din Decembrie 23, 2007, 00:29:14
Cred ca ar trebui sa mearga cu ciurul lui Eratostene.


Titlul: Răspuns: 171 Sum
Scris de: Bogdan Popescu din Decembrie 23, 2007, 01:02:01
Pai si cum sa fac cu ciurul lui erathostene (ca banuiesc ca nu sa aflu numerele prime trebe)...poti sa imi explici putin mai amanunitit pls? MS :D


Titlul: Răspuns: 171 Sum
Scris de: Andrei Grigorean din Decembrie 23, 2007, 01:35:42
http://infoarena.ro/forum/index.php?topic=2512.0


Titlul: Răspuns: 171 Sum
Scris de: Bogdan Popescu din Decembrie 23, 2007, 09:24:19
Ms mult Andrei. 10X :D


Titlul: Răspuns: 171 Sum
Scris de: Bogdan Popescu din Decembrie 23, 2007, 11:31:23
Cu ciuru lui erathostene tot 85 iau. :( cu TLE pe ultimele 3 teste


Titlul: Răspuns: 171 Sum
Scris de: Paul-Dan Baltescu din Decembrie 23, 2007, 11:34:23
E destul de stransa limita de timp la problema asta. Cred ca in Pascal e aproape imposibil sa iei 100.


Titlul: Răspuns: 171 Sum
Scris de: Bogdan Popescu din Decembrie 23, 2007, 11:38:23
Am facut 3 variante. Mai mult de 85 nu iau la niciuna...orice optimizari fac :(
La ultima varianta am folosit ciurul lui erathostene si am calculat phi pe toate numerele de la 2 la max (numarul cel mai mare care se gaseste in fisier)


Titlul: Răspuns: 171 Sum
Scris de: Andrei Grigorean din Decembrie 23, 2007, 12:06:54
Incearca sa parsezi citirea si scriere. Vezi mai sus ce a postat gogu :).


Titlul: Răspuns: 171 Sum
Scris de: Bogdan Popescu din Decembrie 23, 2007, 12:10:39
Scrierea am parsat-o asa cum a spus gogu....dar citirea nu stiu cum :(


Titlul: Răspuns: 171 Sum
Scris de: Andrei Grigorean din Decembrie 23, 2007, 12:48:46
Citesti fiecare rand ca un sir de caractere, si apoi iti "construiesti" singur numerele din input.

Oricum, folosirea limbajului Pascal reprezinta un dezavantaj foarte mare in concursuri, ar trebui sa treci in C++.


Titlul: Răspuns: 171 Sum
Scris de: Bogdan Popescu din Decembrie 23, 2007, 13:39:30
Pai vreau sa trec in c.....dar nu pot asa brusc, ci pe parcurs


Titlul: Răspuns: 171 Sum
Scris de: Andrei Grigorean din Decembrie 23, 2007, 13:51:02
Eu cand am trecut in C++ nu am mai facut niciun program in Pascal desi imi era foarte greu. Te chinui vreo 2-3 luni, insa apoi e lejer.


Titlul: Răspuns: 171 Sum
Scris de: Bogdan Popescu din Decembrie 23, 2007, 14:05:05
Asta asa e.. :D. Da si problema asta ar trebui facuta si in pascal.... Faza e ca nu stiu cat de optim e la mine. Adica calculez phi cu ciurul lui erathostene asa cum ai postat tu pe link, insa ma duc pana la max (numarul cel mai mare din fisier). Inainte de asta am citit numerele intr-un vector si cautam maximul. La sfarsit parcurgeam vectorul in care am salvat numerele din fisier si pt fiecare afisam rezultatul cu scrierea parsata. Banuiesc ca ar trebui sa existe ceva mai rapid, am vazut ca au facut-o cativa in pascal :D


Titlul: Răspuns: 171 Sum
Scris de: Bogdan Popescu din Decembrie 23, 2007, 22:08:34
Totusi de ce nu mariti limita de timp ca nu mi se pare corect. Am doua surse una in cpp si una in pascal. Cea in cpp ia 100 iar in pascal 85 cu 3 TLE


Titlul: Răspuns: 171 Sum
Scris de: Farcasanu Alexandru Ciprian din Ianuarie 03, 2008, 16:54:14
Am si eu o intrebare...sunt elev in clasa a9a la CNITV si am inceput sa invatam c++. Problema e ca se apropie olimpiada si vreau sa ma pregatesc asa ca am intrat aici sa ma antrenez....am rezolvat problema 171 Sum dar cand dau la verificator imi da 0 pte cu o eroare de compilare...daca este cineva amambil sa-mi spuna ce trebuie modificat pt ca progul sa mearga.....uitati aici sursa http://infoarena.ro/job_detail/119888?action=download

Ps: testele personale merg cu succes:D


Titlul: Răspuns: 171 Sum
Scris de: Florian Marcu din Ianuarie 03, 2008, 16:57:40
Pai pune in loc de "void main", "int main". In loc de "endl", foloseste "\n", si vezi sa utilizezi fisiere.


Titlul: Răspuns: 171 Sum
Scris de: Farcasanu Alexandru Ciprian din Ianuarie 03, 2008, 17:04:38
scuze daca intrebarile sunt prea simple pt voi dar eu sunt nou pe aici........am modificat dupa cum ai spus tu si tot nu merge http://infoarena.ro/job_detail/119903?action=download .......da, folosesc fisiere


Titlul: Răspuns: 171 Sum
Scris de: Florian Marcu din Ianuarie 03, 2008, 17:07:17
Cred ca suntem cam off topic. Vezi ca ti`am trimis mesaj privat.   :ok:


Titlul: Răspuns: 171 Sum
Scris de: razyelx din Aprilie 26, 2008, 14:59:22
Salut! Ahm... incerc si eu sa rezolv problema. Hai ca is scurt si la obiect.
Nu folosesc totient. Fac o preprocesare. I-au toate nr prime pana la 100 000. Observ cu care e dintre ele e divizibil nr meu. Apoi Folosesc metoda ciurului dar modificata sa bifez toti multipli factorilor primi ai nr-ului. Afisez doar ceea ce nu e bifat. Scot timpi buni, la cateva teste. Iau doar 55 pct... apoi iau TLE. Sa fie chiar timpul de vina sau e o rpoblema cu limita undeva? Ceva sugetii va rog...


Titlul: Răspuns: 171 Sum
Scris de: Gabriel Bitis din Aprilie 26, 2008, 15:16:20
Incearca functia totient.


Titlul: Răspuns: 171 Sum
Scris de: Bogdan-Alexandru Stoica din Aprilie 26, 2008, 15:29:30
[...]
Fac o preprocesare. I-au toate nr prime pana la 100 000. Observ cu care e dintre ele e divizibil nr meu. Apoi Folosesc metoda ciurului dar modificata sa bifez toti multipli factorilor primi ai nr-ului.
[...]

Nu e din cauza ca nu folosesti totient. Trebuie faci ciurul o singura data pentru toate cele N intrebari.


Titlul: Răspuns: 171 Sum
Scris de: razyelx din Aprilie 28, 2008, 09:47:32
cred ca e o solutie ideea ta, dar in implementarea mea am o matrice de [100001][200001] folosita la salvarea nr. prime cu x. 100001 pt n x-uri si 200001 pt 2*x. Si normal ca treabuia sa mearga ceva prost, nu imi intra in memorie. Oricum mai imi bat capu cu ea asa... daca aveti ceva sugetii nu ezitati  :D
P.S. am pus si char la matrice


Titlul: Răspuns: 171 Sum
Scris de: Bogdan-Alexandru Stoica din Aprilie 28, 2008, 10:18:07
chiar daca ai pus char, tu o sa ai 1000001*200001*2 = 40 000 600 002 bytes, ceea ce este enorm. daca nu te prinzi de rezolvare, poti sa citesti solutia oficiala (http://infoarena.ro/preoni-2006/runda-3/solutii).


Titlul: Răspuns: 171 Sum
Scris de: Simoiu Robert din Decembrie 27, 2009, 22:59:29
Cum fac eu fac cu phi, dar nu stiu, de exemplu stiu ca 5 este cu 8 numere prim, dar nu stiu ce sa fac cu acest numar, pentru ca eu nu stiu ACELE numere si nu stiu cum sa le aflu, si as dori daca se paote cum sa fac un timp mai SCURT. Merci


Titlul: Răspuns: 171 Sum
Scris de: Mihai Calancea din Decembrie 27, 2009, 23:28:51
Cu un post mai sus ai link catre solutia oficiala. E acolo . E colorat. E subliniat :)


Titlul: Răspuns: 171 Sum
Scris de: Simoiu Robert din Decembrie 28, 2009, 15:40:22
Merci n-am vazut
EDIT: De ce iau doar 85 pct? Imi puteti spune ce as putea optimiza? Merci (iau TLE la ultimele 3 teste)


Titlul: Răspuns: 171 Sum
Scris de: Andrei Misarca din Decembrie 28, 2009, 16:50:15
Ai mai mari șanse să fii ajutat dacă descri algoritmul folosit decât dacă postezi o sursă (eu unul nu prea am răbdare să citesc surse, fiecare având stilul lui de a coda, și cu atât mai puțin să găsesc eventuale greșeli în aceste surse).


Titlul: Răspuns: 171 Sum
Scris de: Dragos-Alin Rotaru din Decembrie 28, 2009, 17:11:02
L.E. : Greseala mea ...fa o optimizare: marcheaza pe unde treci cu 1 ca sa nu mai treci si a 2-a oara.


Titlul: Răspuns: 171 Sum
Scris de: Simoiu Robert din Decembrie 28, 2009, 17:14:25
Ok algoritmul este cel cu phi, indicatorul lui euler. Aflam, in procedure aha(asa mi-a venit mie) pentru toate numerele mai mici decat 100000 (limita) cu cate numere sunt prime (de exemplu pentru numar 6 o sa gaseasca 2: adica 1 si 5, pentru 5->1,2,3,4). Apoi acest numar il inmultesc cu 2(pe phi) si il inmultesc cu numarul (x). Mai multe detalii Bogdan Stoica, mesajul mai sus. Si alin, e vorbe de TLE, nu de memorie is 2 lucruri diferite, am incercat mai mic nu merge deoarece da eroare, adica incorect . Si crezi ca daca ma duc pana la dublul merge mai repede? Nicidecum si uite aici (http://infoarena.ro/job_detail/378412) sursa mea.
De ce nu merge? Da incorect
Cod:
var n,x,j,i:longint;
    sum:int64;
    v:array[1..200010] of int64;
    u:array[1..100005] of byte;
    f,g:text;
 procedure aha;
  begin
  for i:=1 to 100005 do
   v[i]:=i-1;
  for i:=2 to 100005 do
   if u[i]=0 then
   begin
    j:=2*i;
     while j<=100005 do
      begin
       u[j]:=1;
       v[j]:=v[j]-v[i];
       j:=j+i;
      end;
   end;
  end;
 begin
  aha;
  assign(f,'sum.in');
  assign(g,'sum.out');
  reset(f);
  rewrite(g);
  readln(f,n);
  for i:=1 to n do
  begin
  readln(f,X);
  sum:=v[x]*x*2;
  writeln(g,sum);
  end;
  close(f);
  close(g);
 end.


Titlul: Răspuns: 171 Sum
Scris de: Dragos-Alin Rotaru din Decembrie 28, 2009, 17:57:15
Daca tot nu iese incearca ciurul lui Paul Dan Baltescu. E foarte optimizat :)
http://infoarena.ro/forum/index.php?topic=2512.0 (http://infoarena.ro/forum/index.php?topic=2512.0)


Titlul: Răspuns: 171 Sum
Scris de: Simoiu Robert din Decembrie 28, 2009, 18:06:44
Nu merge din pacate poate nu merge pentru PASCAL
EDIT: am facut cum ai zis, paul db, dar tot asa da la ultimele 3 da TLE


Titlul: Răspuns: 171 Sum
Scris de: Dragos-Alin Rotaru din Decembrie 28, 2009, 18:10:26
Un motiv in plus sa inveti C++. Nu cred ca ar lua mult sa vezi cum se fac atribuirile, impartirile, declararile unui program etc. E doar o chestie de vointa.


Titlul: Răspuns: 171 Sum
Scris de: Simoiu Robert din Decembrie 28, 2009, 18:12:35
Am modificat postul, am facut cum a zis paul dar nu merge tot 85 :(


Titlul: Răspuns: 171 Sum
Scris de: Dragos-Alin Rotaru din Decembrie 28, 2009, 18:13:56
Parseaza daca nu vrei sa inveti C++ [-X


Titlul: Răspuns: 171 Sum
Scris de: Savin Tiberiu din Decembrie 30, 2009, 10:39:28
Nu m-am uitat foarte atent pe codul insa primul lucru care mi-a sarit in ochi a fost ca in ciur incepi cu j de la i*2. Ar trebui sa incepi de la i*i


Titlul: Răspuns: 171 Sum
Scris de: Simoiu Robert din Decembrie 30, 2009, 10:51:43
Da killed by signal 11 SIGSEGV :(( e prea mic vectorul nu stiu


Titlul: Răspuns: 171 Sum
Scris de: Savin Tiberiu din Decembrie 30, 2009, 10:52:11
Trebuie sa faci o verificare inainte de a incepe forul deoarece i*i poate depasi 2^32 si sa faca overflow (cand i ajunge in jur de 30000). Poti verifica ca atunci cand i * i ajunge mai mare decat N sa omori ciurul deoarece toate numerele ramase sunt prime.


Titlul: Răspuns: 171 Sum
Scris de: Simoiu Robert din Decembrie 30, 2009, 11:24:46
Adica sa fac break :D (am inceput c++ de ieri). Imi poti face acea particica te rog :D
EDIT: am facut dar imi da incorect: Si inca ceva daca am facut cu prinf\scanf din c imi da 100 pct... ciudat
Cod:
#include <fstream>
using namespace std;

#define MAX 100005
long long sum;
long n,x,j,i;
long long v[MAX];
char u[MAX];
void ciur()
{
    for (i=1;i<=MAX;i++)
      v[i]=i-1;
    for (i=2;i<=MAX;i++)
     if (u[i]==0)
     {
      if (i*i<=MAX)          
      for (j=i*i;j<=MAX;j+=i)
      {
          u[j]=1;
          v[j]-=v[i];
      }    
      else break;
     }
}        
int main()
{
    ciur();
    ifstream f("sum.in");
    ofstream g("sum.out");
    f>>n;
    for (i=1;i<=n;i++)
    {
        f>>x;
        sum=v[x]*x*2;
        g<<sum<<"\n";
    }    
    return 0;
}    
    
 


Titlul: Răspuns: 171 Sum
Scris de: HoriaC din Mai 03, 2010, 19:21:48
Salut,am si eu o problema iata ce fac in program :

Calculez phi exact ca si algoritmul lui wefgef pe urma afisez phi [ x ]*x*2 .
Iau 50 p(TLE la restu) pe acest lucru ,lucrez cu stdio,pe long long si am incercat si cu algoritmul optimizat a lui paul db.

Cu ce gresesc ? :-k


Titlul: Răspuns: 171 Sum
Scris de: Simoiu Robert din Mai 03, 2010, 20:08:01
Cum faci, caracter cu caracter ? Si ce anume ai long long ?


Titlul: Răspuns: 171 Sum
Scris de: HoriaC din Mai 03, 2010, 20:40:31
Long long am phi,n,x si citesc :
Cod:
for(int k=1;k<=n;++k)
{
scanf("%lld",&x);
                 ...
Probabil ca aici gresesc...


Titlul: Răspuns: 171 Sum
Scris de: Dragos-Alin Rotaru din Mai 03, 2010, 21:14:09
Nu ai nevoie de long long. Pune int peste tot, dar ai grija ca atunci cand calculezi rezultatul cu ajutorul formulei sa pui long long la conversie.


Titlul: Răspuns: 171 Sum
Scris de: Simoiu Robert din Iunie 23, 2010, 22:54:45
Tot nu-mi iasa de 100 in Pascal ....  :o :o


Titlul: Răspuns: 171 Sum
Scris de: Pripoae Teodor Anton din Iunie 23, 2010, 23:04:17
Ma, da pana la urma tu lucrezi in c++ sau pascal ? Ca parca ma intrebai de stl mai demult :)).


Titlul: Răspuns: 171 Sum
Scris de: Simoiu Robert din Iunie 24, 2010, 10:07:19
Teoretic la clasa fac Pascal, dar lucrez mai mult in c++. Si m-am gandit sa-mi refac problemele care le-am facut in Pascal si nu mi-au iesit si .... am dat de asta ....

[LE] Ciudat, odata imi intra, odata nu , odata TLE, odata 128 ms .... ce inseamna asta  :-k
[LE2] Vai finally ... mi-a iesit in sfarsit http://infoarena.ro/job_detail/480372?action=view-source ....

Thanks GOD


Titlul: Răspuns: 171 Sum
Scris de: Atyim Paul din Martie 05, 2011, 17:44:20
suma numerelor prime 1 pana 2*x trebuie?


Titlul: Răspuns: 171 Sum
Scris de: Simoiu Robert din Martie 05, 2011, 20:56:05
Nu inteleg ce vrei sa zici .... fi mai explicit.


Titlul: Răspuns: 171 Sum
Scris de: Atyim Paul din Martie 06, 2011, 12:34:23
da mai multe exemple, pentru ca nu inteleg ce trebuie sa fac pe numerele de prime


Titlul: Răspuns: 171 Sum
Scris de: Simoiu Robert din Martie 06, 2011, 13:18:03
Incearca aici (http://infoarena.ro/forum/index.php?topic=2512.0).


Titlul: Răspuns: 171 Sum
Scris de: Atyim Paul din Martie 06, 2011, 15:22:00
nu inteleg cerinta, incerci sa explici tu si dai mai multe teste pls


Titlul: Răspuns: 171 Sum
Scris de: Simoiu Robert din Martie 06, 2011, 15:34:43
Un numar este prim cu alt numar daca nu se imparte la el ( 1 este considerat prim cu toate numerele ) . Spre exemplu, numarul 15 este prim cu 1, 2, 4, 7, 8, 11, 13, 14. Cum tie ti se cere suma tuturor aceste numere, pana la 2 * 15, o sa ai si numerele 16, 17 .... 29. Aduni aceste numere si o sa ai suma.
Cod:
10
564
74
851
14
51
201
471
41
65
40

Cod:
207552
5328
1347984
168
3264
53064
293904
3280
6240
1280


Titlul: Răspuns: 171 Sum
Scris de: Lepadat Mihai-Alexandru din Martie 06, 2011, 16:00:26
Numarul 15 nu este prim cu 10, nici cu 12 etc. x este prim cu y daca cmmdc(x, y) = 1.


Titlul: Răspuns: 171 Sum
Scris de: Simoiu Robert din Martie 06, 2011, 16:13:35
Da, am modificat ulterior. Merci pentru seizare.


Titlul: Răspuns: 171 Sum
Scris de: Atyim Paul din Martie 06, 2011, 16:54:59
ms mult  :)


Titlul: Răspuns: 171 Sum
Scris de: barbu andrei din Februarie 04, 2012, 08:59:04
 ](*,) naspa
nu merge
am luatde trei ori 0


Titlul: Răspuns: 171 Sum
Scris de: Dan H Alexandru din Aprilie 09, 2012, 11:10:02
pt. cei cu 85p afisati cu printf  :ok:


Titlul: Răspuns: 171 Sum
Scris de: Cobzaru Adrian-Andrei din Iulie 07, 2012, 11:08:30
nu inteleg de ce iau 2 tle-uri in plus cand am variabilele long long si nu pe int...imi poate spune cineva?


Titlul: Răspuns: 171 Sum
Scris de: Pirtoaca George Sebastian din Iulie 07, 2012, 14:34:19
Pentru ca tipul int lucreaza pe 32 de biti, iar long long pe 64. Astfel ca la fiecare operatie de inmultire, adunare , atribuire , etc. , procesorul are mai multi biti de prelucrat. Deci long long este mult mai incet decat int ,dar foarte folositor in unele cazuri.


Titlul: Răspuns: 171 Sum
Scris de: Dan H Alexandru din Iulie 09, 2012, 19:17:20
http://infoarena.ro/job_detail/731844

Defapt intra si pe long long.   :)


Titlul: Răspuns: 171 Sum
Scris de: Carabian Ovidiu din Decembrie 25, 2012, 00:59:06
iese din 100001 de imi da la testul 20 TLE?


Titlul: Răspuns: 171 Sum
Scris de: Simoiu Robert din Decembrie 25, 2012, 01:08:21
Probabil din cauza faptului ca afisarea C++ cu streamuri e mai lenta decat cea clasica din C. Incearc-o pe aceea.
[LE] Din cate am vazut a mai incercat cineva si nu a reusit cu streamuri, doar daca parsezi afisarea si afisezi un char, dar mai usor e sa faci afisarea printf.


Titlul: Răspuns: 171 Sum
Scris de: Carabian Ovidiu din Decembrie 25, 2012, 01:29:44
Mersi mult Robert... asa se pare ca streamurile de afisare in c++ is lenese


Titlul: Răspuns: 171 Sum
Scris de: CHIRILA ADRIAN din Ianuarie 29, 2013, 17:25:08
#include <iostream>
#include <fstream>
  using name std;
  int cmmdc(int a,int b)
  {  if (!b) return a;
  return cmmdc(b,a % b);
  }
 int main(void)
 {
    ifstream f("sum.in");
    ofstream g("sum.out");
   int n,x,y,i,j;
   f>>n;
   for(i=1;i<=n;i++)
   {   f>>x;
    y=0;
     for(j=1;j<=2*x;j++)
     {  if (cmmdc(x,j)==1) y=y+j;}
     g<<y<<"\n";
     }
     f.close();
   return 0;
   }
De ce nu se ruleaza?


Titlul: Răspuns: 171 Sum
Scris de: Pirtoaca George Sebastian din Ianuarie 29, 2013, 18:04:40
Cod:
#include <iostream>
#include <fstream>
  using namespace std;
  int cmmdc(int a,int b)
  {  if (!b) return a;
  return cmmdc(b,a % b);
  }
 int main(void)
 {
    ifstream f("sum.in");
    ofstream g("sum.out");
   int n,x,y,i,j;
   f>>n;
   for(i=1;i<=n;i++)
   {   f>>x;
    y=0;
     for(j=1;j<=2*x;j++)
     {  if (cmmdc(x,j)==1) y=y+j;}
     g<<y<<"\n";
     }
     f.close();
   return 0;
   }
Acum ruleaza. Succes!


Titlul: Răspuns: 171 Sum
Scris de: Mercea Otniel din August 08, 2013, 18:58:21
ce este gresit,imi da kill signal 11
#include<iostream>
using namespace std;
#include<stdio.h>
FILE *f,*g;
int n,x,q,i,j,w;
long long a[100005],suma;
int main()
{
    f=fopen("sum.in","r");
    g=fopen("sum.out","w");
    fscanf(f,"%d",&n);
    for(i=0;i<n;i++)
    {
        fscanf(f,"%d",&x);
       q=x*2;
       for(j=1;j<=q;j++)
        a[j]=j-1;
       for(j=2;j<=q;j++)
         for(w=j+j;w<=q;w=w+j)
             a[w]=a[w]-a[j];
             suma=a
  • *x*2;
       fprintf(g,"%lld\n",suma);
        }
}


Titlul: Răspuns: 171 Sum
Scris de: Breahna David din Iunie 26, 2014, 21:49:18
Mă ajută și pe mine cineva.. ?!? !?!
Nu-mi pot da seama unde greșesc.
Tot ce introduc manual e ok.
Dar la evaluator.. 0.
M-am săturat să-mi bat capull.

http://www.infoarena.ro/job_detail/1202142?action=view-source

vă rog ajutoorrr.r.r.r. ](*,) ](*,) ](*,) ](*,) ](*,) :fighting: :fighting: :fighting: :



Titlul: Răspuns: 171 Sum
Scris de: Mamaligarul din Octombrie 24, 2018, 12:48:04
imi place problema asta mirobolanta :fighting: :banana: :banana: :banana: :banana: :banana: :banana: :banana: :banana: :banana: :banana: :banana: