Hirdetés
- Visszatérhetnek a Samsung gyártotta Snapdragon chipek
- Lesz is reklám a Nothing telefonjainak zárképernyőjén, meg nem is
- Ilyen lesz a Honor Magic8 RSR Porsche Design
- A Dreame megmutatta, hogy valójában mekkora - porszívótól az autóig - CES
- Mától kapható az IP69K védelmével világelső Blackview MEGA 12 tablet
- Samsung Galaxy S23 Ultra - non plus ultra
- Lesz is reklám a Nothing telefonjainak zárképernyőjén, meg nem is
- Mobil flották
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- iPhone topik
- Megtalálták az akkumulátortechnológiai Szent Grált? - CES
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Redmi Note 13 Pro+ - a fejlődés íve
- Hivatalos a OnePlus 13 startdátuma
- Google Pixel topik
Ú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!
- TCL LCD és LED TV-k
- Anime filmek és sorozatok
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Apple asztali gépek
- Projektor topic
- Anglia - élmények, tapasztalatok
- Motoros topic
- Samsung Galaxy S23 Ultra - non plus ultra
- Lesz is reklám a Nothing telefonjainak zárképernyőjén, meg nem is
- Milyen HASZNÁLT notebookot vegyek?
- További aktív témák...
- Csere-Beszámítás! Acer Nitro 5 AN515-57! I7 11800H / RTX 3050Ti / 16GB DDR4 / 512GB Nvme SSD!
- Xbox One S 1 TB + kontroller 6 hó garancia, számlával!
- HIBÁTLAN iPhone 13 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS4245, 100% Akksi
- LG 83B4 - 83" OLED - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox Ready
- iPhone 17 Pro Max Kozmosznarancs - Bontatlan !! www.stylebolt.hu - Apple eszközök és tartozékok !!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest



