Kezdőoldal » Számítástechnika » Programozás » C ben prímszám ellenőrzés?

C ben prímszám ellenőrzés?

Figyelt kérdés

idaig jutottam:

ezen a részen probaltam a primszam ellenorzest....mar csak a prim szam kiirasa hianyzik



#include<stdio.h>


int main(void){


int c,i,d;

scanf("%d",&c);

i=c;



while ( i != 0){

// printf("%d\n",i);

d=c%i;

// printf("dolog %d\n",d);



if (d == 0){

printf ("oszthato %d\n",i);

}


i--;


}



}



egy szamnak kiirja amivel maradektalanul oszthato mar csak az kell,hogy a primszamoknal kiirja hogy primszam.


2011. nov. 1. 12:19
 1/5 anonim ***** válasza:

Csak a legszükségesebb dolgokat írtam át, sok helyen lehetne javítani a kódon, de így legalább megérted mi a lényeg.


#include<stdio.h>


int main(void){


int c,i,d;

//feltesszük, hogy prím

bool prim = true;

scanf("%d",&c);

i=c;


while ( i != 0){

// printf("%d\n",i);

d=c%i;

// printf("dolog %d\n",d);


if (d == 0){

//osztható d-vel, így nem prím

prim = false;

printf ("oszthato %d\n",i);

}

i--;

}


//Kiírás

if(prim) printf("%d prímszám.\n",c)

else printf("%d NEM prímszám.\n",c)

}

2011. nov. 1. 12:24
Hasznos számodra ez a válasz?
 2/5 _Jessy_ ***** válasza:
i != 0 helyett i != 1, mert ha 0-t írsz, akkor i = 1-re is lefut a ciklus, és egy szám sem lesz prím, amúgy jó.
2011. nov. 1. 12:37
Hasznos számodra ez a válasz?
 3/5 Pj0tr ***** válasza:

Nem kell az összes számra leellenőrizni.

Ha egy c számról meg akarod tudni, hogy prím-e, akkor elegendő egy olyan ciklust csinálni, amely 2ről indul és maximum gyök c-ig ellenőriz vagy amíg nem akad olyan szám amivel osztható, mert akkor nem prím. Ha gyök c-ig nm volt ilyen akkor már nem is lesz.

2011. nov. 3. 15:33
Hasznos számodra ez a válasz?
 4/5 _Jessy_ ***** válasza:
Ezt a kérdést már rakta ki a kérdező, és írtam is neki a gyökös verzióról, csak valahogy nem akarja alkalmazni :) És ráadásul sokkal gyorsabb 3-tól kettessével, ha nem osztható kettővel
2011. nov. 3. 16:08
Hasznos számodra ez a válasz?
 5/5 Pj0tr ***** válasza:

Sőt igazából folyamatosan optimalizálódna, ha az összes előtte lévő prímszámot kiszámolná, mert akkor már csak azokkal kellene végigosztania :D

Persze az összköltség nagyobb lenne, de a konkrét számra szánt idő jelentősen csökkenne.

2011. nov. 3. 16:31
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!