Hogyan lehet eldönteni egy számról, hogy prim e?
C++-ban szeretném egy számról eldönteni, hogy prim szám e.
int prim,k, i;
cout<<"Adja meg a szamot"<<endl;
cin>> prim ;
for(i=2; i<=prim; i++)
if (prim%i==0)
k=k+1;
if (k=0) {
cout << "prim";
}
else {
cout << "nem prim";
}
}
return 0;
}
Minden számra azt írja, hogy nem prim
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
1. Saját magával minden szám osztható.
2. Nem inicializáltad k-t.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
int prim,k = 0, i;
...
for(i = 2; i < prim; i++)
...
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Itt a probléma:
i<=prim
Azaz magáig a számig mégy, önmagával pedig minden szám osztható, tehát nyilván nem jó így az algoritmus.
bool isPrime(int n) {
if(n<=1) return false;
if(n==2) return true;
if(n % 2 == 0) return false;
for(int i=3;i*i<=n;i+=2) if(n % i == 0) return false;
return true;
}
Sajnos így sem megy
int prim,k=0,i;
cout<<"Adja meg a szamot"<<endl;
cin>> prim ;
for(i=2; i<prim; i++)
if (prim%i==0)
k=k+1;
if (k=0) {
cout << "prim";
}
else {
cout << "nem prim";
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!