Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Achiziționare tuner TV !

Din ce este facuta terasa asta?

Cum accesez site-ul CNAS ?

Algoritm simplu de calculare al u...
 Bitdefender Total Security ș...

casa verde 2024

Intrerupator cu N - doza doar cu ...

Incalzire casa fara gaz/lemne
 Incalzire in pardoseala etapizata

Suprataxa card energie?!

Cum era nivelul de trai cam din a...

probleme cu ochelarii
 Impozite pe proprietati de anul v...

teava rezistenta panou apa calda

Acces in Curte din Drum National

Sub mobila de bucatarie si sub fr...
 

Numere prime <=n

- - - - -
  • Please log in to reply
10 replies to this topic

#1
Cantafford92

Cantafford92

    Junior Member

  • Grup: Members
  • Posts: 54
  • Înscris: 16.07.2014
Salut,

Doresc sa scriu un program c++ care sa returneze toate numerele prime <=n unde n este dat de user(fara 2).

Asta am scris:

#include <iostream>
using namespace std;
int main()
{
int n,i,j;
cout << "Baga numar: "; cin >> n;
for(i=1; i<=n; i++)
for(j=3; j<i/2; j++)
{
if(i%j!=0)
cout << j;
}

}


Sunt incepator deci nu imi dau seama ce am gresit. Ajutor, va rog. Multumesc!

Edited by Cantafford92, 08 August 2014 - 09:25.


#2
yonut_a

yonut_a

    Trala la la la

  • Grup: Senior Members
  • Posts: 3,944
  • Înscris: 03.08.2008
de ce testezi incepand cu 3 ?

si revezi ce inseamna un numar prim. Un numar e prim daca are DOAR 2 divizori, pe 1 si pe el insusi.

#3
Cantafford92

Cantafford92

    Junior Member

  • Grup: Members
  • Posts: 54
  • Înscris: 16.07.2014

View Postyonut_a, on 08 august 2014 - 09:19, said:

de ce testezi incepand cu 3 ?

si revezi ce inseamna un numar prim. Un numar e prim daca are DOAR 2 divizori, pe 1 si pe el insusi.
Am testat incepand cu 3 pentru ca am vrut sa afisez toate numerele prime mai mari ca 1, fara numarul 2.

Ce este gresit aici?
for(j=3; j<i/2; j++)
{
		if(i%j!=0)
		cout << j;
}
Daca j pleaca de la 3 pana la i/2, atunci cand i nu se imparte exact la j niciodata, nu ar trebui ca j sa fie numar prim?

Edited by Cantafford92, 08 August 2014 - 09:24.


#4
yonut_a

yonut_a

    Trala la la la

  • Grup: Senior Members
  • Posts: 3,944
  • Înscris: 03.08.2008

View PostCantafford92, on 08 august 2014 - 09:23, said:

Am testat incepand cu 3 pentru ca am vrut sa afisez toate numerele prime mai mari ca 1, fara numarul 2.

Asta ai vrut, doar ca ai tu iei divizorii incepand cu 3 nu numerele.

View PostCantafford92, on 08 august 2014 - 09:23, said:

Daca j pleaca de la 3 pana la i/2, atunci cand i nu se imparte exact la j niciodata, nu ar trebui ca j sa fie numar prim?


Corect, daca nu se imparte NICIODATA exact la j , doar ca tu afisezi daca nu se imparte CEL PUTIN ODATA la j.

#5
Cantafford92

Cantafford92

    Junior Member

  • Grup: Members
  • Posts: 54
  • Înscris: 16.07.2014

View Postyonut_a, on 08 august 2014 - 09:29, said:

Corect, daca nu se imparte NICIODATA exact la j , doar ca tu afisezi daca nu se imparte CEL PUTIN ODATA la j.
Ok, am inteles dar nu stiu cum sa scriu asta in program :(.

#include <iostream>
using namespace std;
int main()
{
int n,i,j,prim=1;
cout << "Baga numar: "; cin >> n;
for(i=3; i<=n; i++)
for(j=1; j<i/2; j++)
{
	if(i%j==0)
	prim=0;
}
for(j=1; j<i/2; j++)
{
	if(prim==1)
	cout << j;
}
}

Nu stiu cum sa testez conditia spusa de tine pentru fiecare numar in parte :(

#6
Redount2k9

Redount2k9

    Member

  • Grup: Members
  • Posts: 374
  • Înscris: 13.07.2010
Poti incerca asa ceva in bucla for:

int ok = false;
for ( int j = 2; j < i / 2; ++j )
if ( i % j == 0 ) ok = true;
if ( ok ) cout << i << ' ';


Desigur ca exista algoritmi mai buni pentru determinarea numerelor prime.
Ai invatat functiile?

Edited by Redount2k9, 08 August 2014 - 09:54.


#7
tatarduka

tatarduka

    Senior Member

  • Grup: Senior Members
  • Posts: 3,042
  • Înscris: 30.10.2006
...si iti va zice ca nici un numar nu e prim pentru ca toate se impart la 1.

#8
Cantafford92

Cantafford92

    Junior Member

  • Grup: Members
  • Posts: 54
  • Înscris: 16.07.2014

View PostRedount2k9, on 08 august 2014 - 09:52, said:

Poti incerca asa ceva in bucla for:

int ok = false;
for ( int j = 2; j < i / 2; ++j )
if ( i % j == 0 ) ok = true;
if ( ok ) cout << i << ' ';


Desigur ca exista algoritmi mai buni pentru determinarea numerelor prime.
Ai invatat functiile?
Putin. Stiu cum se declara si foloseste o functie insa nu prea am lucrat efectiv cu ele.

#9
Redount2k9

Redount2k9

    Member

  • Grup: Members
  • Posts: 374
  • Înscris: 13.07.2010
Atunci iti dau o tema:
Incearca sa faci o functie (desigur, cat mai eficienta dpdv al complexitatii) care sa verifice daca parametrul sau este numar prim. Cand crezi ca ai gasit solutia optima, da-mi un mesaj.

#10
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,383
  • Înscris: 10.08.2005

View PostCantafford92, on 08 august 2014 - 09:12, said:

Sunt incepator deci nu imi dau seama ce am gresit. Ajutor, va rog. Multumesc!
uite o abordare matematica

[ https://www.youtube-nocookie.com/embed/eZUa5k_VIZg?feature=oembed - Pentru incarcare in pagina (embed) Click aici ]

vezi ca sunt destule explicatii despre numere prime pe aria asta
de unde incepem, pana unde merge, si cum salvam
da un search

Edited by MarianG, 08 August 2014 - 10:55.


#11
opop

opop

    bolnav cronic :(

  • Grup: Senior Members
  • Posts: 6,570
  • Înscris: 06.01.2007
cout << "Baga numar: "; cin >> n;
int nrdiv=0;
for(int i=3;i<n;i++)
{
nrdiv=0;
for(int j=1;j<i;j++)
{
if(i%j==0) nrdiv++;
}
if(nrdiv<3) cout<<n<<" ";
}

cam asa ceva
daca are mai putin de 3 divizori, atunci e prim si il afisezi

Edited by opop, 08 August 2014 - 10:50.


Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate