Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Numar prim  (Citit de 8780 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« : Decembrie 26, 2009, 22:51:06 »

Buna.Cum fac sa vad daca un numar este un numar prim daca numarul e un numar real?
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #1 : Decembrie 26, 2009, 22:57:47 »

Numerele prime sunt prin definitie naturale Smile
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #2 : Decembrie 26, 2009, 23:14:07 »

Ok atunci formulez altcumva: cum fac sa verific daca un numar REAL se imparte exact la 2( nu pot folosi MOD-sunt in pascal- deoarece 2 e natural si numarul meu e real)?
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #3 : Decembrie 26, 2009, 23:27:54 »

Ok , nici notiunea de divizor nu e definita pe numere reale Very Happy detaliaza , de ce ai nevoie ?
Memorat
nparfene2004
Client obisnuit
**

Karma: 22
Deconectat Deconectat

Mesaje: 81



Vezi Profilul
« Răspunde #4 : Decembrie 27, 2009, 12:32:23 »

Probabil intrebarea este daca am un numar de genul 4.12 atunci impartirea la 2 e ok, pentru ca
412 : 2 = 206, (am facut 4.12 *100 = 412) dar 51.3 : 2 nu e ok (513 : 2 da restul 1).

Daca am inteles bine intrebarea, trebuie sa vezi cea mai din dreapta cifra zecimala daca e para sau impara.
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #5 : Decembrie 27, 2009, 13:04:46 »

Sa zicem ca avem un numar 98. Cum vedem daca se imparte la 2?Simplu. Vedem daca restul (mod) este 0. Dar daca vreau numere mai mari de 10 cifre(care trec de longint), nu pot apela la MOD pentru ca imi da eroare deoarece MOD este doar pentru numerele INTREGI, gen byte,word,integer. Daca am un numar 100000000000.0, el se imparte clar la 2 (eu vreau teoretic numere NATURALE, acel numar care l-am scris 10.... este natural, doar in PASCAL il vede REAL),dar nu pot sa vad daca restul lui la 2 este 0, deoarece se aplica,cum spuneam, doar la numerele intregi. Ce as putea face sa vad daca un numar se imparte la doi, un numar de forma a,00000.....?
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #6 : Decembrie 27, 2009, 13:27:28 »

Din cate inteleg, e un real cu partea fractionara zero. Nu ar fi simplu sa il convertesti in integer?
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #7 : Decembrie 27, 2009, 13:29:02 »

Cum sa-l convertesti cand integer merge pana la 5-6 cifre, iar nuamrul meu de exemplu e de 15 cifre sa zicem.
Memorat
alexandru92
Nu mai tace
*****

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« Răspunde #8 : Decembrie 27, 2009, 13:36:04 »

Cum sa-l convertesti cand integer merge pana la 5-6 cifre, iar nuamrul meu de exemplu e de 15 cifre sa zicem.
Retinel intr-un string si vezi daca ultima cifra este o cifra para.
Sau mai ai posibilitatea :
Cod:
 
double x, ip, fp;
cin>>x;
x/=2;
fp=modf( x, &ip );// imparte un numar real in doua parti, parte fractionara si partea intreaga, se gaseste in math.h
if( 0 == fp )
  cout<<"numarul este par\n";
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #9 : Decembrie 27, 2009, 13:39:43 »

In Pascal exista tipul de date intregi int64 care tine valori pana la 264.
Memorat

Am zis Mr. Green
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #10 : Decembrie 27, 2009, 13:41:21 »

Atunci cand folosesti numere reale pentru a retine numere foarte mari se pierd ultimele cifre.
De exemplu sa zicem ca ai numarul:
1234567891011121131415
Si nu poti sa il tii in int si il tii ca numar real. Eh in acest caz numarul tau o sa devina ceva de genu
1234567890000000000000
(este doar un exemplu nu stiu exact de la ce valori incolo incep sa se piarda ultimele cifre, dar asa functioneaza).

Ceea ce incerci tu sa face poti rezolva impartind numarul la 2 si verificand daca partea lui fractionara e 0 (poti folosi functia floor ca sa afli partea fractionara desi nu stiu sigur daca exista in pascal), dar ai grija pentru ca e posibil ca rezultatul sa nu fie cel corect.
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #11 : Decembrie 27, 2009, 16:10:12 »

Ok, am luat si eu un caz mai "handicapat", teoretic eu vreau sa vad daca un numar REAL este prim ,adica sa il impart si la 2, si la 3, si la 5 si etc.. De exemplu un numar MARE. cum vad eu daca se imparte la 3,  sau la 9? Ii numar cifrele?  Shame on you
Si as mai vreau daca aveti toate domeniile posibile in Pascal, incluzand int64. Merci
EDIT:nu poti face mai usor asa: if trunc(n/3)=n/3(unde 3 sunt numerele la care vrei sa vezi daca se imparte acel nr.)?
« Ultima modificare: Decembrie 27, 2009, 16:15:15 de către Robert Simoiu » Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #12 : Decembrie 27, 2009, 21:18:10 »

Mi se pare ca vrei sa eviti lucrul cu numerele mari (retinute in vectori). Se poate sa pici in capcana preciziei numerelor reale. Gandeste-te ca un tip real pe 32 biti aloca mai putini biti "cifrelor semnificative" decat aloca un numar intreg, chiar daca un numar real poate retine numere mult mai mari. Un sfat ar fi sa intelegi mai bine cum sunt reprezentate numerele reale in floating point:

http://en.wikipedia.org/wiki/Floating_point#Internal_representation
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #13 : Decembrie 27, 2009, 21:31:43 »

Da dar am vrut sa vad si eu cum pot sa vad asta  Shame on you
« Ultima modificare: Ianuarie 06, 2010, 19:47:56 de către Robert Simoiu » Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #14 : Ianuarie 07, 2010, 15:50:48 »

Poate te ajuta asta:

Cod:
  if trunc(n / 2) * 2 = n then
    writeln('Se divide cu 2');
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #15 : Ianuarie 07, 2010, 15:58:53 »

Da Merge merci  Evil or Very Mad asa am facut si eu si merge  Yahoo!
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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