Hirdetés
- Utcakép banánnal: félrecsúszhat a Google Térkép fókusza
- ARM-os meglepetéskiadást kap az év első felében a Windows 11
- Hírértékűvé tette a Lenovo, hogy az ASUS támogatja a kézikonzolját
- Mobilhálózatokra szabott EPYC-kel ugrik az 5G-s homokozóba az AMD
- Kiemelt figyelmet fordít a biztonságra az MSI szélsebes SSD-je
- Milyen egeret válasszak?
- Kormányok / autós szimulátorok topikja
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Milyen digitális videókamerát?
- Házimozi haladó szinten
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- AMD Navi Radeon™ RX 9xxx sorozat
- Akciókamerák
- Projektor topic
- Milyen billentyűzetet vegyek?
Ú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!
- norbx: IRC a 90-es évek és a 2000-es évek elején
- Samsung kuponkunyeráló
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- Milyen egeret válasszak?
- Formula-1
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Kormányok / autós szimulátorok topikja
- PlayStation 5
- Motoros topic
- Apple iPhone 17 Pro Max – fennsík
- További aktív témák...
- ASUS RTX5090 - TUF-RTX5090-32G-GAMING /ÚJ, BONTATLAN, MAGYAR KISKER GARANCIA, NEM CÉGES VÁSÁRLÁS/
- HP EliteMini 800 G9 vPro - i5-14500T 14C/20T - 16GB DDR5 5600 - 256GB SSD - BILL+EGÉR
- ASUS GeForce RTX 5060 Ti DUAL OC 16GB WHITE EDITION
- Xiaomi Adaptive Wireless Charger 80W & Xiaomi Hypercharge Combo 120W
- Canon M50 Mark II fényképezőgép 5 objektívvel, konvertekekkel, kiegészítőkkel
- BESZÁMÍTÁS! 16GB G.SKILL Trident Z 4000MHz DDR4 memória garanciával hibátlan működéssel
- Keresünk Galaxy S23/S23+/S23 Ultra/S23 Fe
- BESZÁMÍTÁS! Sapphire B650M R7 8700F 32GB DDR5 512GB SSD RX 9070 XT 16GB CM MasterBox 5 fehér 750W
- BOMBA ÁRrR! Lenovo ThinkPad T14s Gen 4 Ryzen 5 PRO 7540U 14" FHD+ 32GB 1TB Lenovo gar: 2028.01.07!
- iKing.Hu - Apple iPhone 16e 128GB White használt újszerű 100% akku 83 ciklus garanciás 2026.10.26-ig
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


