Kezdőoldal » Számítástechnika » Programozás » Nagyon tökéletes az a szám,...

Nagyon tökéletes az a szám, amely osztói összegének osztóit összeadva, a szám kétszeresét kapjuk. A feladat tehát: keressünk programmal nagyon tökéletes számokat!?

Figyelt kérdés

Ilyen például a 16, mert osztóinak összege 31, a 31 osztóit összeadva pedig 32-t kapunk.

-----------------------------------------


Ezt a feladatot kaptam, C++ -ban kellene megoldanom, de azt sem tudom, hogy hogyan álljak neki.


2015. márc. 31. 23:48
 1/9 A kérdező kommentje:

Találtam hozzá matematikai levezetést, de nem sokra mentem vele.


[link]

2015. márc. 31. 23:50
 2/9 anonim ***** válasza:
100%

Bontsd fel részfeladatokra:

1. döntsd el, hogy 'A' szám osztója-e B-nek

2. határozd meg B szám osztóit

3. határozd meg B szám osztóinak összegét


Ezeket szépen írd meg függvényekbe, és hívogasd okosan.


Hint: 'A' szám akkor osztója B-nek, ha a B/A egészosztás maradéka 0. A maradékot a % operátorral tudod kiszámoltatni: (B % A).

2015. ápr. 1. 09:42
Hasznos számodra ez a válasz?
 3/9 SimkoL ***** válasza:
50%

A mellékelt leírást olvasva kb. én ott lyukadtam ki, hogy csak a kettő hatványai között található a fent említett szám. Írtam egy szösszenetet, lehet tovább fejleszteni:


#include <cstdlib>

#include <iostream>

#include <math.h>


using namespace std;


int osztoosszeg(int osztando){

int osszeg = 0;

int meddig = sqrt(osztando);

for (int i = 1; i <= meddig; i++){

if (osztando % i == 0){

osszeg += i;

osszeg += osztando / i;

}

}

if (floor(sqrt(osztando)) == sqrt(osztando)) return osszeg - sqrt(osztando);

else return osszeg;

}


int main(){

for (int i=1; i <= 100000000; i *= 2 ) if ((osztoosszeg(osztoosszeg(i))) == 2 *i ) cout << i << endl;

system("PAUSE");

return 0;

}

2015. ápr. 1. 11:16
Hasznos számodra ez a válasz?
 4/9 iostream ***** válasza:

"A mellékelt leírást olvasva kb. én ott lyukadtam ki, hogy csak a kettő hatványai között található a fent említett szám."


Nagyon kíváncsi lennék, hogy erre hogy lyukadtál ki. Ugyanis egy kettőhatvány osztóinak az összege mindig páratlan lesz (minden osztója páros kivéve az 1), és egy páratlan szám nem lehet semmilyen egésznek a kétszerese.

2015. ápr. 1. 13:46
Hasznos számodra ez a válasz?
 5/9 anonim ***** válasza:

io, itt még van egy csavar! :) Itt osztók összegének osztóinak összegét vesszük. Kettő hatvány esetén az osztók összege páratlan, ez igaz. DE ennek is vesszük az osztóinak összegét, ami viszont már lehet páros. :)


Ezzel persze még nem igazoltam SimkoL-t, viszont "nagyon tökéletes számok" keresés első találatán levő cikk (ld #1-ben is) írja, hogy bizonyos kettő hatványok lesznek ezek.

2015. ápr. 1. 14:13
Hasznos számodra ez a válasz?
 6/9 iostream ***** válasza:
Nem hiszem el. Az utóbbi 1-2 hétben folyamatosan figyelmetlen vagyok, okmányirodába is háromszor mentem mire mindent sikerült eltalálni, céges ügyintézést is elrontom. Ez már az öregkori demencia jele lehet.
2015. ápr. 1. 15:05
Hasznos számodra ez a válasz?
 7/9 SimkoL ***** válasza:

Nem kell 'elkettyenni'. A negyedik unoka után már én is örülök ha nem p.silek mellé :)

Én az egészből annyit szűrtem le, hogy páratlan 'nagyon tökéletes' számot még nem találtak - bár a leírás régi - és nagy valószínűséggel csak a kettő hatványi lehetnek. Utána nem olvastam, csak 'hozott anyagból' dolgoztam. Valószínű lehetne gyorsítani rajta, csak mintaképpen írtam az egészet.

2015. ápr. 1. 15:46
Hasznos számodra ez a válasz?
 8/9 SimkoL ***** válasza:

Bár nem nagyon érdekel, de kíváncsi lennék rá aki lepontozott mi érvet tud felhozni 'ellenem' - nem ez az első ilyen jellegű kérdésem, sajnos - Legyen akkor szakmai vita - vagy csak egymás 'vérszívása', mint tabaki kollegával :) -, de ezt nem értem.

Nagyon szeretem a szakmai 'vitákat' mert abból tanul mindenki - ennyiből jobb a Prog.hu -, de itt sajnos a sok 'sötétben bujkáló ellenforradalmár' illegalitásban marad.

Remélem tabaki kolléga a maga 'cirkalmas' nyelvén kicsit megerősít, de az sem baj ha elveszi a kedvem

2015. ápr. 1. 17:41
Hasznos számodra ez a válasz?
 9/9 tabaki ***** válasza:

Ööö... ööö... én most tartok ott, hogy érdekes lenne megírni ezt a programot pascalban... De lehet, hogy mégis egyszerűbb odacsapni a piros mancsra. Hmmm, ízlelgetem a hatalmat, ami a szürke kis balegérgombban fickándozik!

Sajnos, a sötétben bujkálók megítélésében nemigen telik tőlem józan ítélet, amióta megfigyeltem, hogy a régebbi korrekt és hasznos válaszaimat valaki lelkiismeretesen lenullázza -- gondolom, valaha beszóltam neki, és kifogyott az érvekből.

Az kétségtelen, hogy a kész megoldások hasznosságát illetően nincs mindig fedésben a kettőnk véleménye, de az emberi faj vonzó tulajdonsága, hogy mindez értelmes párbeszédben oldódhat föl. Másfelől viszont az ember gyarló, és kinek-kinek szíve joga erről az oldaláról bemutatkoznia. Más módon, de én is megteszem nap mint nap. :)

2015. ápr. 2. 01:56
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!