Hirdetés
- Ha a koreaiakon múlik, még évekig ingünk-gatyánk rámehet a memóriákra
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- E-book olvasók
- Androidos fejegységek
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AMD vs. INTEL vs. NVIDIA
- Vezetékes FEJhallgatók
- 5.1, 7.1 és gamer fejhallgatók
- Régóta ott van a fiókban az Intel válasza az AMD-féle 3D V-Cache-re
- Épített vízhűtés (nem kompakt) topic
Ú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!
- Ha a koreaiakon múlik, még évekig ingünk-gatyánk rámehet a memóriákra
- Luck Dragon: Asszociációs játék. :)
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Kerékpárosok, bringások ide!
- Direct One (műholdas és online TV)
- E-book olvasók
- Battlefield 6
- Androidos fejegységek
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AMD vs. INTEL vs. NVIDIA
- További aktív témák...
- Xiaomi Redmi 13C 4/128GB, Megkímélt, Kártyafüggetlen, Töltővel, Dobozzal, 1 Év Garanciával!
- i7-840QM processzor (4 mag, 8 szál, 1,87-3,2 GHz, 8 MB cache) - csomagküldés 1070 Ft-tól
- iPhone 15 PRO MAX Natúr Titánium 256GB Új állapot, dobozában GARANCIÁLIS!
- 9800x3d félkonfig
- Dell Latitude 7390 / i7 8650U / 16GB DDR4 / 256GB Nvme / Vill. Eu bill / Jó akku
- Telefon felvásárlás!! iPhone 14/iPhone 14 Plus/iPhone 14 Pro/iPhone 14 Pro Max
- BESZÁMÍTÁS! MSI H310M i5 9500 16GB DDR4 120GB SSD 2TB HDD RTX 3050 8GB Zalman T4 Plus AeroCool 550W
- HIBÁTLAN iPhone 13 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3432
- Honor 200 Lite / 8/256GB / Kártyafüggetlen / 12HÓ Garancia
- GYÖNYÖRŰ iPhone 13 Pro 128GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS3962, 100% Akkumulátor
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi



