Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!
PyCharm feladat 2
Nayem{ Informatikus } kérdése
611
Sziasztok!
Egy olyan program megírására lenne szükségem, amely meghatározza a legkisebb számot ami osztható 1 és N között lévő összes számmal (maradék nélkül). (Fusson le akár N = 20-ra is.)
Például: a 2520 a legkisebb szám ami maradék nélkül osztható minden számmal 1 és 10 között, mert
2520 / 1 = 2520
2520 / 2 = 1260
2520 / 3 = 840
2520 / 4 = 630
2520 / 5 = 504
2520 / 6 = 420
2520 / 7 = 360
2520 / 8 = 315
2520 / 9 = 280
2520 / 10 = 252
Jelenleg 1 felhasználó nézi ezt a kérdést.
pycharm, pyhton
0
Felsőoktatás / Informatika
Válaszok
3
Nayem{ Informatikus }
válasza
Az N változót a felhasználótól kérjük be mindig.
0
Még nem érkezett komment!
Törölt{ Fortélyos }
válasza
Sajnos a Pyton nem az én világom, de két megoldást javasolnék
a) brute force (sajna N növekedésével egyre nagyobb probléma van)
C# formában mellékelve - képpel
A másik lehetőség (csak leírás)
Az N-ből kiválasztod a prímeket, majd megvizsgálod, hogy az egyes prímeknek mi a legmagasabb hatványa N-et végigvizsgálva...
A prímek legmagasabb hatványainak szorzata megadja a keresett számot
pl. N=10 esetén
1 - nem kell vele foglalkozni
2 - `2^1`
3 - `3^1`
4 - `2^2`
5 - `5^1`
6 - `2^1*3^1`
7 - `7^1`
8 - `2^3`
9 - `3^2`
10 - `2*5`
amely alapján a szám: `2^3*3^2*5*7=2520`
0
Még nem érkezett komment!
bongolo{ }
megoldása
Szita módszerrel (vagy legalábbis ami ugyanazon az elven alapul, mint Eratoszthenész szitája) :
Mivel a Python 3 nagy méretű int-ekkel is tud számolni, működik ez a kód akár 100-ig is, mint a fenti link mutatja (ahhoz már 136 bites aritmetikát használt). 22-ig elég 32 bit is.
Beleraktam print-eket, hogy látszódjon, hogyan működik. Amikor a "prim" értéke 1, akkor persze felesleges az újabb ciklus belül, hogy osszon vele, kihagyhatod egy if-fel. Lehetne még kicsit gyorsítani, hogy a belső ciklus is szitával menjen, de így is elég gyors.
Azt majd rakd bele te, hogy kérje be N értékét.
2
Nayem:
Nagyon szépen köszönöm! Megpróbálom mindegy egyes lépését értelmezni majd, amit elkészítettél!
4 éve0