Kezdőoldal » Számítástechnika » Programozás » Hogy néz ki egy prímszám...

Hogy néz ki egy prímszám kiíró program c++ ban?

Figyelt kérdés
2011. dec. 13. 19:01
1 2
 11/14 _Jessy_ ***** válasza:

if( prime(i)==true && prime(i+14)==true)

{

tomb[i]=i;

counter++;

}

Ez így nem feltétlenül fog működni :) A prime(int) függvényem egy amolyan elfajzott prímtesztelő, mivel csak akkor működik, ha az adott számig minden egyes prímet végigvizsgálsz vele.

2013. máj. 21. 16:27
Hasznos számodra ez a válasz?
 12/14 anonim ***** válasza:

Amúgy sztem működne, csak épenséggel lassú lenne, mivel ki kellene számolni az összes értéket. És tök feleslegesen nézne meg egy jó pár elemet.


A helyes megoldás egy primtesztelő algoritmus lenne:

pl a fermat féle teszt( bár ebben lesz egy pár amiben nem csak primek maradnak bent, a jobb megoldás a Miller-Rabin féle primteszt lenne.


legszebb egy primek tipus alkotása lenne, ami eldöntenél, hogy mi prim és mi nem prim. És sokkal hatékonyabb lenne, mint a brute force algoritmus, és akár nagy( 2048 bites) számok körében is működne( persze ehhez biginteger osztályra is szükség van egyelőre itt van longgal;. Ugyanis egyáltalán nem biztos, hogy p meg p+14 is prim lesz kicsi számok esetében.

pl. így( az egyes részfüggvényeket nem implementálom, mert szerintem egy kicsit hosszú lenne, a konstruktort jelenleg kihagytam)

class primek

{

int lnko(int a,b);

int jacobi_symbol(int a, int b, n);

long number;

bool fermat(int numberone);

bool miller(int numbertwo);

bool savoljai(int numberthree);

public:

int getnumber(int szam)

{

number=(long) szam);

return 0;

}

bool prime()

{

if( fermat(number)==true && miller(number)==true && savoljai(number)==true)

{

return true;

else

{

return false;

}

}

};

Ezután az osztályt meghívnánk

2013. máj. 22. 09:46
Hasznos számodra ez a válasz?
 13/14 _Jessy_ ***** válasza:
Na igen, viszont a Miller-Rabin azért "nem jó" itt, mert az ilyen programokat általában azért íratják, hogy megtanulja az illető az alapvető dolgokat. ciklus, elágazás, stb. De egyébként tényleg nagyságrendekkel gyorsabbat lehetne ezzel a módszerrel írni.
2013. máj. 22. 13:08
Hasznos számodra ez a válasz?
 14/14 anonim válasza:

Ezt lehet tudni?

Keressük meg adott számig a legtöbb osztójú természetes számot!

2013. máj. 23. 12:54
Hasznos számodra ez a válasz?
1 2

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!