C++, kicsit át kéne alakítani a programot?
Szóval az alábbi program megadja hogy 0-n-ig melyek a tökéletes számok (olyan számok, amelyek megegyeznek az önmaguknál kisebb osztóik összegével). Ha beírom, hogy 100, kiadja, hogy 6 és 28. Ezt át kéne írni úgy, hogy az első n tökéletes számot adja ki, vagyis ha beírom, hogy 3, akkor kiadja, hogy: 6, 28,496. Számlálóval kéne megoldani, nem? Próbálkoztam, de sehogy nem működött, ugyanazt csinálta a program, mit most.
(Még csak most kezdtem el programozni, szóval nem ismerek túl sok mindent)
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
for (int k=1; k<=n;k++)
{
int sum=0;
for (int oszto=1; oszto<k; oszto++)
{
if (k%oszto==0)
sum= sum + oszto;
}
if (sum==k)
cout<<sum<<" ";
}
return 0;
}
esetleg így? (nem vagyok c++-os, még)
https://pastebin{pont}com/81FyvPKc
Én nem tudok C++-ban programozni, ezért együgyűbben oldottam meg a korlátozást, mint #1:
Ezenkívül érdekességként megemlítem: Mivel az eredmények igen nagy mélységben előre ismertek, esetleges gyakorlati felhasználásra jól alkalmazható az a táblázatos csalás, amelyről itt SimkoL javaslata nyomán olyan jól elveszekedtünk:
https://www.gyakorikerdesek.hu/szamitastechnika__programozas..
Ennek természetesen semmi köze az érték kiszámolásához, de nem osztom azt a nézetet, hogy emiatt mindjárt tilos is tudni róla. Parasztos megoldás, de ha a feladatban már nem a módszer megértése volna a lényeg, hanem csak az eredmény kéne valamire, milliárdszor hatékonyabb. Egy szűkebb tartományon belüli próbálkozásom itt:
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!