Hirdetés
- Honor 200 Pro - mobilportré
- Apple iPhone 17 - alap
- Google Pixel topik
- Fotók, videók mobillal
- Motorola Signature - mielőtt aláírnád...
- Android alkalmazások - szoftver kibeszélő topik
- Szerkesztett és makrofotók mobillal
- Xiaomi 17 Ultra - jó az optikája
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Garmin 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!
- Eladó Xbox Series X 1 Tb SSD + Elite Kontroller + Xbox Wireless Headset
- Eladó Konfig I5 8500 16GB DDR4 480GB SSD RX6600 8GB!
- X1 Yoga Gen7 2-in-1 14" FHD+ IPS érintő i7-1265U 32GB 512GB NVMe aktív toll ujjlolv gar
- Apple iPhone 13 Pro 128GB 100% Akku,Megkímélt,Kártyafüggetlen,Tartozékaival. 1 Év Garanciával!
- Nvidia RTX 3060 Ti 8GB Founders Edition Garanciával!
- Apple iPhone 12 Pro Max 128GB, Kártyafüggetlen, 1 Év Garanciával
- Lenovo ThinkPad X1 Carbon Gen 9 i7-1185G7 32 GB RAM Iris Xe 4k kijelző törésgarancia
- Bomba ár! Dynabook Portege X30-L-K - i7-1260P I 8GB I 256SSD I 13,3" FHD I Cam I W11 I Gari!
- Konzol felvásárlás!! Xbox Series S, Xbox Series X
- BESZÁMÍTÁS! Asus PRIME H510M i5 11400 16GB DDR4 512GB SSD RX 6600 8GB Rampage SHIVA Adata 600W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


