- Honor Magic5 Pro - kamerák bűvöletében
- Magisk
- Google Pixel 9 és Pixel 9 Pro összehasonlító gyorsteszt
- Akciófigyelő: Jelentősen olcsóbban nyit az Ulefone új mindenese
- Érkezik a Samsung Health előfizetés?
- Samsung Galaxy S23 Ultra - non plus ultra
- Telekom mobilszolgáltatások
- Honor 400 Pro - gép a képben
- Samsung Galaxy Fit 3 - keveset, de jól
- Samsung Galaxy A56 - megbízható középszerűség
Új hozzászólás Aktív témák
-
EQMontoya
veterán
válasz
Pttypang #5222 üzenetére
Ejj, ha!
No, akkor okítsunk.
Először is: osztóJa!
Másodszor: szájbaszexuálnád a nevemben, aki arra nevel, hogy magyar változóneveket és függvényneveket használjatok?
Harmadszor: Optimalizáljunk:
-Ha a megadott szám kisebb, mint 1000, akkor elég a megadott számig menni. Tehát a ciklusfeltétel: i<min(n,1000). Illetve ennek is elég a feléig menni, mert különben ugyanazokat a számokat találod meg fordítva. Tehát i<=min(n,1000)/2. Azért kisebbegyenlő, mert kihasználtam gonoszul az egész osztást.
-Gondolkodjunk is: a második ciklus tök felesleges. Minden számhoz csak egy másik olyan tartozik, amivel összeadva az öszeg n lesz. Tehát, amit vizsgálnod kell: prime(i) && prime(n-i). Ezzel kész is vagy.Tehát:
for(i=1;i<=min(n,1000)/2;i++)
{
if(prime(i) && prime(n-i))
{
printf(...);
}
}No, ez már így nem is lenne rossz, most már cak a prímtesztelést kell kicsit okosítani. Maradjunk a primitív módszereknél, de ennél azért kicsit okosabban. Ha egy szám nem prím, akkor előáll két szám szorzataként. Ebből a kettőből az egyik kisebb, vagy egyenlő, mint a gyöke, tehát elég addig nézni.
Osztókat számolni tök felesleges, az első osztónál ugyanis biztosan nem lehet prím.Tehát:
for(i=2;i<=sqrt(n);i++)
{
if(!n%i) //csalok: ez akkor igaz, ha a maradékos osztás maradéka 0 - tehát osztható
{
return false; //van osztója, ami nem egy és nem önmaga
}
}
return true; //ha a gyökéig nem volt osztója, biztos prím.Máris mennyivel szebb, ugye?
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- IPhone 12 128GB gyári független gyári 99%-os akku
- Asus A15 FA506IU 15.6" FHD IPS Ryzen 7 4800H GTX 1660Ti 16GB 512GB magyar vbill gar
- i5-13600KF, RX 9070, DDR5 32GB, 1 TB M.2, Fractal North TG és sok garancia
- Logitech Combo Touch iPad Pro 11" (1., 2. a 3. gen), szürke - UK billentyűzet ipad tok billentyűzet
- újszerű iPad Pro 11" (3. generációs) (2021) M1 chip Wi-Fi 128GB silver ezüst Apple
- Samsung Galaxy A32 4G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Honor Magic5 Lite 128GB, Kártyafüggetlen, 1 Év Garanciával
- Realme 7i 64GB, Kártyafüggetlen, 1 Év Garanciával
- LG 65QNED87T / 65" - 164 cm QNED / 4K UHD / 120Hz & 3ms / HDR 10 Pro / FreeSync Premium / HDMI 2.1
- ÖRÖK GARANCIÁVAL - OLCSÓ, LEGÁLIS SZOFTVEREK 0-24 KÉZBESÍTÉSSEL - Windows - Office - LicencAruhaz.hu
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest