Kezdőoldal » Számítástechnika » Programozás » Miért nem jó ez a prímszám...

Miért nem jó ez a prímszám vizsgáló program? C++.

Figyelt kérdés

//main.cpp

#include <iostream>

#include <math.h>

using std::cout;

using std::cin;

typedef unsigned long ulong;

typedef unsigned short ushort;


int main(void)

{

ulong number;

bool primeNumber(true);


cout << "Give me a number: ";

cin >> number;

ulong half(number/2);


if(number%2 && number != 1)

{

for(ulong i(3); i < half; i+= 2)

if(i%number)

primeNumber = false;

}

else

primeNumber = false;


if(primeNumber || number == 2)

cout << "The " << number << " is a prime number.";

else

cout << "The " << number << " is not a prime number.";


return 0;

}


Például a 199 a progi szerint nem prím.


2013. máj. 9. 01:51
 1/3 zsomkovacs ***** válasza:

A for cikluson belül szereplő if feltétele (number%i==0) kéne hogy legyen.


További problémák: bár beincludeoltad, nem látom, hol használnád a math.h-t. És bár tökéletesen működik, nem használj számokat feltételként. Egyrészt nem vagyok biztos benne, hogy minden fordító köteles a 0-t false-ként, minden mást true-ként kezelni, annak ellenére, hogy még nem futottam össze olyannal, ami nem így tenne, másrész a kód érthetőségét, átláthatóságát jelentősen nehezíti.

2013. máj. 9. 06:00
Hasznos számodra ez a válasz?
 2/3 iostream ***** válasza:

"Egyrészt nem vagyok biztos benne, hogy minden fordító köteles a 0-t false-ként, minden mást true-ként kezelni"


Akkor nyugodj meg, mert ez van a szabványban.

És az, hogy rontja-e az olvashatóságot, helyzetfüggő.

2013. máj. 9. 09:19
Hasznos számodra ez a válasz?
 3/3 anonim ***** válasza:
elég a szám gyökéig menni
2013. máj. 9. 20:21
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!