- Fejhallgató erősítő és DAC topik
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Fujifilm X
- Melyik tápegységet vegyem?
- Egyre csábítóbbak ezek az ASUS ExpertCenter mini PC-k
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Milyen TV-t vegyek?
- Apple MacBook
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Nvidia GPU-k jövője - amit tudni vélünk
Ú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!
- Fejhallgató erősítő és DAC topik
- Renault, Dacia topik
- Kerékpárosok, bringások ide!
- Hitelkártyák használata, hitelkártya visszatérítés
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- iPhone topik
- Xiaomi 17 Ultra - jó az optikája
- Fujifilm X
- sziku69: Fűzzük össze a szavakat :)
- Crimson Desert
- További aktív témák...
- Dell Latitude 7320 - i7-1165G7
- Zenbook UX3404VA 14.5" 3K OLED i5-13500H 16GB 512GB NVMe magyar vbill gar
- Apple MacBook Pro 14" (2021) M1 Pro - 32GB/1TB / 91% akku - Újszerű - 12 hónap garancia
- Lenovo Thinkpad x13 (i5 10th, 8 GB, 240 SSD) AkciÓÓ!
- Corsair Vengeance RGB 64GB (2x32) DDR5 6000Mhz for AMD // Számla // Garancia//
- Apple iPhone 12 Mini 128 GB Fekete 1 év Garancia Beszámítás Házhozszállítás
- GYÖNYÖRŰ iPhone SE 2022 128GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS4535, 100% AKKSI
- ÚJ BONTATLAN Apple Macbook Air 15,3 M4 10C CPU/10C GPU/16GB/256GB - Égkék - HUN - mc7a4mg/a 3 év gar
- Apple iPhone 12 Mini 64GB, Kártyafüggetlen, 1 Év Garanciával
- Nvidia Quadro M2000/ P2000/ P4000/ RTX 4000/ RTX 5000/ RTX A2000
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



