Hirdetés
- gban: Ingyen kellene, de tegnapra
- Brogyi: CTEK akkumulátor töltő és másolatai
- Parci: Milyen mosógépet vegyek?
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- joghurt: Megtarthatod a jogsid?
- sziku69: Szólánc.
- eBay-es kütyük kis pénzért
- bkercso: Társadalmi stabilitás az AI szemszögéből
Ú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
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Mikrotik routerek
- Diablo IV
- TCL LCD és LED TV-k
- AliExpress tapasztalatok
- PlayStation 5
- gban: Ingyen kellene, de tegnapra
- AMD Navi Radeon™ RX 9xxx sorozat
- Autóápolás, karbantartás, fényezés
- Brogyi: CTEK akkumulátor töltő és másolatai
- Ilyen se volt még: mégsem kell sok memória az új James Bond játékhoz
- További aktív témák...
- Samsung Galaxy A22 5G, Kártyafüggetlen, 1 Év Garanciával
- Honor Pad X8 64GB, 1 Év Garanciával
- Google Pixel 10 Pro 256GB, Kártyafüggetlen, 1 Év Garanciával
- Apple MacBook Air M2 256GB SSD, 1 Év Garanciával
- Lenovo IdeaPad Gaming 3 - 15,6"FHD IPS - i5-10300H - 8GB - 512GB SSD - Win10 - GTX 1650 Ti - MAGYAR
- Samsung Galaxy S24 Ultra 12/256GB Titanium Gray használt, megkímélt garancia 2027.12.27-ig
- Dell Latutide E7270, 7280, i5- i7, 8GB RAM, 256gb ssd, EU bill., számla, 6 hó gar - több db
- GYÖNYÖRŰ iPhone 14 Pro 128GB Space Black -1 ÉV GARANCIA - Kártyafüggetlen, MS4022
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- GYÖNYÖRŰ iPhone 11 64GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS4325, 100% Akkumulátor
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest


