- Xiaomi 14T - nem baj, hogy nem Pro
- Apple Watch
- Samsung Galaxy A56 - megbízható középszerűség
- Yettel topik
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Apple iPhone 17 Pro Max – fennsík
- Vivo X200 Pro - a kétszázát!
- iPhone topik
- Samsung Galaxy Watch7 - kötelező kör
- „Új mérce az Android világában” – Kezünkben a Vivo X300 és X300 Pro
Ú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!
- Unifi UACC-CM-RJ45-MG SFP+ RJ45 10G adapter eladó, majd 2 év garanciával
- ASUS TUF F15 extra hardverekkel - i5 11400H, RTX 3050Ti, FHD 144Hz, 1,5TB SSD, 16GB RAM
- HTC Vive Pro 2 teljes prémium VR szett Valve INDEXEL, garanciális, sok extrával!
- LG 29WL500-B 29 colos Ultrawide IPS monitor, megkímélt állapotban
- Nintendo Switch (használt) + tartozékok
- BESZÁMÍTÁS! Asus X370 R5 2600 8GB DDR4 250GB SSD 1TB HDD GTX 1650 4GB Zalman T7 Chieftec 400W
- HP Thunderbolt-dokkoló, 120W G4 (4J0A2AA)
- LG 25GR75FG - E-Sport Monitor - FHD 360Hz 1ms - NVIDIA Reflex + G-sync - AMD FreeSync - HDR 400
- Dell Precision 5560 i7-11850H FHD+ 100%sRGB 32GB 1000GB Nvidia Quadro T1200 1 év teljeskörű gar!
- BESZÁMÍTÁS! ASUS ROG STRIX Z390-H GAMING alaplap garanciával hibátlan működéssel
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest