Kezdőoldal » Számítástechnika » Programozás » C#-ban írtam egy programot,...

C#-ban írtam egy programot, ami megnézi, hogy mi a legkisebb egyre végződő ötjegyű prímszám. De valamiért a 20001-et prímnek veszi, és akárhonnan indítom a k-t, a két feltétel közül az egyik hidegen hagyja. Miért?

Figyelt kérdés

k = 20000;

while (!prím(k) && k % 10 != 1)

k++;


A prímet így keresi meg:

static bool prím(int szám)

{

int i = 2;

while (i <= szám / 2 && szám % i != 0 )

{

i++;

}

if (szám == 2)

return true;

else

return !(szám % i == 0);

}


2014. szept. 19. 14:48
 1/6 anonim ***** válasza:
10061 a legkisebb 1-re végződő, ötjegyű prímszám.
2014. szept. 19. 15:08
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:

1. Miért is 20K-ról indulsz? Az első ötjegyű szám a 10K.

2. A while feltételedet gondoljuk át. Akkor növeli a k-t, amikor nem prím és nem 1-re végződik. -> Akkor áll meg ha prím VAGY 1-re végződik. Tanulság? ÉS helyett VAGY kell neked.

2014. szept. 19. 15:27
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:

Köszi

Amúgy azért a 20k-t néztem, mert eredetileg 4 jegyű számot kerestem, és ott az 1001et dobta ki rögtön, és megnéztem hogy ezt csinálja-e egy olyan számmal is, ami tuti nem prím, így jött a 20001.

De azt még nem értem hogy miért nem jó neki az ÉS? A kettő feltételnek egyszerre kell teljesülnie nem?

2014. szept. 19. 16:22
 4/6 anonim ***** válasza:

Ez van a kódodban:

amíg (nem prím) ÉS (nem 1-re végződik)

addig növeli a k-t


Nevezzük a 2 feltételt A-nak és B-nek.


Ez akkor áll meg, ha az (A ÉS B) feltétel nem teljesül. Ez a feltétel akkor nem teljesül ha legalább az egyik tagja (A vagy B) hamis. Tehát: akkor áll meg a ciklus, ha !A VAGY !B


Visszatérve a feladatodhoz: akkor áll meg ha prím VAGY 1-re végződik. (Ha legalább az egyik a kettő közül.)

2014. szept. 19. 16:46
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:

> A kettő feltételnek egyszerre kell teljesülnie nem?


Annak kell egyszerre teljesülnie, hogy prím és 1-re végződik. Ha negálod, akkor ÉS-ből VAGY lesz. Ez egy azonosság.


!(A ÉS B) = !A VAGY !B


[link]

2014. szept. 19. 16:49
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:

"!(A ÉS B) = !A VAGY !B"

Köszi, ezt nem tudtam. Ez nagyon hasznos infó. :)

Köszönöm a többi választ is!

2014. szept. 19. 21:57

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!