Pagini: 1 [2]   În jos
  Imprimă  
Ajutor Subiect: 079 Frac  (Citit de 7598 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
spx4
Vizitator
« Răspunde #25 : Martie 18, 2006, 16:21:52 »

daca se incearca principiul includerii si al excluderii apar
sume de produse care se identifica cu relatiile lui viette.se identifica polinomu
pacolo
si daca n=p1^a1 * p2^a2 *...*pk^ak
atunci numarul de numere cu proprietatea cautata este
phi(n)=n(1-1/p1)(1-1/p2)...(1-1/pk)

probabil ca o abordare buna ar fi folosind stern-brocot tree sau secvente farey

[Editat de bogdan2412: Nu mai posta de 2 ori consecutive.. Use the Edit button! ]
Memorat
amadaeus
Client obisnuit
**

Karma: 28
Deconectat Deconectat

Mesaje: 93



Vezi Profilul
« Răspunde #26 : Aprilie 02, 2006, 21:16:13 »

atunci numarul de numere cu proprietatea cautata este
phi(n)=n(1-1/p1)(1-1/p2)...(1-1/pk)

te referi la functia lui Euler phi(N), care returneaza numarul de intregi mai mici ca N si primi cu N.
Problema era sa aflu cate numere mai mici ca x si prime cu n sunt..
Ideea ramane cam aceeasi, numai ca se modifica putin forma finala.
Memorat

"one of these days I'm going to cut you into little pieces..."
anna_bozianu
De-al casei
***

Karma: 5
Deconectat Deconectat

Mesaje: 111



Vezi Profilul
« Răspunde #27 : Septembrie 13, 2008, 06:57:36 »

Am si eu o nelamurire. Primesc urmatorul mesaj de eroare 
Citat
Compilare:
user.cpp: In function 'void solve()':
user.cpp:30: warning: left shift count >= width of type

pentru linia :

Citat
left=0;right=1<<61;

(0 puncte cu TLE pe toate testele dar asta se explica de moment ce am un while(right-left-1) si  left=right=0) :

Dupa ce inlocuiesc linia cu :

Citat
left=0;right=1;right<<=30;right<<=30;right<<=1;

totul merge perfect (100 puncte ).

Cele doua linii nu ar trebui sa aiba acelasi efect ? ( variabilele left si right sunt de tip long long )

L.E. 10x pauldb
« Ultima modificare: Septembrie 13, 2008, 11:30:34 de către Bozianu Ana » Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #28 : Septembrie 13, 2008, 08:18:58 »

Operatia se calculeaza default pe int daca nu ai termeni ai ei long long (valoarea la care se face atribuirea nu conteaza).

Citat
left=0;right=1;right<<=30;right<<=30;right<<=1;

Asta poate fi inlocuit cu
Cod:
right = 1LL<<61
« Ultima modificare: Septembrie 13, 2008, 09:06:49 de către Paul-Dan Baltescu » Memorat

Am zis Mr. Green
S7012MY
Nu mai tace
*****

Karma: 26
Deconectat Deconectat

Mesaje: 648



Vezi Profilul
« Răspunde #29 : Mai 07, 2010, 16:30:26 »

Merge cu un euclid+ciur?
Memorat
veleandu
De-al casei
***

Karma: 155
Deconectat Deconectat

Mesaje: 132



Vezi Profilul
« Răspunde #30 : Mai 30, 2011, 21:15:23 »

Tiberiu un ciur pana la 2^60 :-S

nu cred
eu ma gandesc ca .. caut binar rezultatul ( sa il numai X ) ...
X luand valoare intre 0 - 2^61 ..
si pe un X anume calculez cate elemente se impart cu factorii primi ai lui N : ) folosind un pinex "clasic"
daca X- nr care se divid > P .. x scade la jumatate : )
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #31 : Mai 30, 2011, 21:17:34 »

Bravo, rezolvarea ta e corecta! Smile Dar nu are rost sa raspunzi la topicuri in care nu s-a mai scris de atata timp.
Memorat

Am zis Mr. Green
Pagini: 1 [2]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines