Hirdetés
- Így lehet kiszúrni, ha kamu AirPods fülest akarnak eladni neked
- Samsung Galaxy A56 - megbízható középszerűség
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Magyarországra jön a Vivo 500 megapixeles kameratelefonja
- Samsung Galaxy A54 - türelemjáték
- Olcsón ad sokat, de a minősége... Kukirin G2 Ultra teszt
- Fotók, videók mobillal
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Xiaomi 15T Pro - a téma nincs lezárva
Ú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!
- Azonnali informatikai kérdések órája
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- PlayStation 5
- The Division 2 (PC, XO, PS4)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Szomjan halunk, míg az AI dolgozik
- Last contact: rejtélyes körülmények között semmisült meg a 34343-as műhold
- Tápos kibeszélő offtopik
- Villanyszerelés
- További aktív témák...
- iPhone 17 Pro Max - Pitaka Lucid Blue aramid tok eladó
- Lenovo IdeaPad 5 2-in-1 16IRU9 Laptop - 16" Touch, Intel Core i5 120U, 16 GB, 512 GB - Garanciával
- Eredeti fake/full kamu 1TB SSD + kamu 512GB sd cardel (ajándék)! Oktatás, blog, prezentációs célra!
- Erős (HP Omen 17) gamer Laptop! -i9 13900HX, RTX 4090 16gb/175w tgp, 32gb DDR5, 1tb SSD
- riello UPS SDH 3000 - Szünetmentes tápegység - 3000 VA -2U
- 203 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070
- HP EliteBook 830 G5 13,3" i7 8650u, 16GB RAM, SSD, jó akku, számla, 6 hó gar
- AKCIÓ! GIGABYTE A520M R5 1400 8GB DDR4 256GB SSD 500GB HDD GTX 1050 Ti 4GB ZALMAN S3 400W
- Lenovo ThinkPad T14 Gen 4 Ryzen 5 PRO 7540U 14" FHD+ 32GB 512GB Lenovo gar: 2028.01.07!
- Apple iPhone 12 Pro Max Graphite 128GB használt szép állapot 100% akku 6 hónap garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


