Elemi algoritmusok (C++-ban megírva)

Egy szám valódi osztoinak kiírása

int szam;
cout << "Add meg a szamot: "; cin >> szam;

for( int oszto  = 2; oszto  < szam / 2; oszto ++ )
{
    if( szam % oszto == 0)
    {
        cout << oszto << " ";
    }
}

Prímszámvizsgáló

int szam;
bool prim_e = true;

for( int oszto = 2; oszto < sqrt(szam); oszto++ )
{
    if( szam % oszto == 0)
        prim_e = false;
}

if( prim_e )
{
    cout << "Prímszám!";
}
else
{
    cout << "Nem prímszám!";
}

Elsőfokú egyenlet

int a, b;
cout << "a: "; cin >> a;
cout << "b: "; cin >> b;

if( a == 0 && b == 0 )
{
    cout << "Végtelen sok megoldás!";
}

if( a != 0 && b == 0 )
{
    cout << "x = 0" ;
}

if( a != 0 && b != 0 )
{
    x = (-1) * (b / a);
    cout << "Megoldás: x = " << x;
}

Tökéletes szám

int szam;
int osszeg = 0;

cout << "Add meg a szamot: "; cin >> szam;

for(int oszto = 1; oszto  < szam / 2; oszto ++ )
{
    if( szam % oszto == 0 )
    {
        osszeg += oszto;
    }
}

if( szam == osszeg )
{
    cout << "A megadott szám tökéletes!";
}
else
{
    cout << "A megadott szám tökéletlen!";
}

Barátságos számok

int a, b;
int osszeg_a = 0;
int osszeg_b = 0;

cout << "a: "; cin >> a;
cout << "b: "; cin >> b;

for( int oszto_a = 1; oszto_a < a / 2; oszto_a++ )
{
    if( a % oszto_a == 0 )
    {
        osszeg_a += oszto_a;
    }
}

for( int oszto_b = 1; oszto_b < a / 2; oszto_b++ )
{
    if( b % oszto_b == 0 )
    {
        osszeg_b += oszto_b;
    }
}

if( osszeg_a == b && osszeg_b == a )
{
    cout << "A megadott számok barátságos számopárok!";
}
else
{
    cout << "A megadott számok nem barátságos számpárok!";
}

Armstrong-féle szám

int szam;
int seged;
int osszeg = 0;

cout << "Add meg a számot: "; cin >> szam;
seged = szam;

while( szam > 0 )
{
    int ut_szamjegy = szam % 10;
    osszeg += ut_szamjegy * ut_szamjegy * ut_szamjegy;
    szam /= 10;
}

if( seged == osszeg )
{
    cout << "A megadott szám Armstrong-féle szám!";
}
else
{
    cout << "A megadott szám nem Armstrong-féle szám!";
}

Legnagyobb közös osztó és legkisebb közös többszörös

int a, b;

cout << "a: "; cin >> a;
cout << "b: "; cin >> b;

if( a == 0 && b == 0 )
{
    cout << "Nincs LNKO!";
}

if( a == 0 && b != 0 )
{
    cout << "LNKO = " << b;
}

if( a != 0 && b == 0 )
{
    cout << "LNKO = " << a;
}

if( a != 0 && b != 0 )
{
    while( a != b)
    {
        if( a > b)
        {
            a = a - b;
        }
        else
        {
            b = b - a;
        }
    }
    
    cout << "LNKO = " << a;
}

/**
    Ha LKKT-t is akarunk számolni akkor a megjegyzésben
    leírt eljárást kell alkalmazni!
**/

Eukleidész algoritmusa (L.N.K.O kiszámítására)

int a, b;
int seged_a, seged_b;
int lnko = 0, lkkt = 0;

cout << "a: "; cin >> a;
cout << "b: "; cin >> b;

seged_a = a;
seged_b = b;

if( a < b )
{
    int p = a;
    a = b;
    b = p;
}

while( b != 0 )
{
    int m = a % b;
    a = b;
     b = m;
}

lnko = a;
lkkt = seged_a * seged_b / lnko;

cout << "LNKO = " << lnko << endl;
cout << "LKKT = " << lkkt;

Palindrom

int szam;
int palindrom = 0;
int seged_szam = a;

cout << "Add meg a számot: "; cin >> szam;
seged_szam = a;

while( szam > 0 )
{
    palindrom = palindrom * 10 + szam % 10;
    szam /= 10;
}

if( seged_szam == palindrom )
{
    cout << "A megadott szám palindrom!";
}
else
{
    cout << "A megadott szám nem palindrom!";
}

Tízes számrendszerből kettesbe való alakíás

int szam10;
int hatv = 1;
int szam2 = 0;

cout << "Add meg a számot: "; cin >> szam10;

while( szam10 > 0 )
{
    szam2 += (szam % 2) * hatv;
    hatv *= 10;
    szam10 /= 2;
}

cout << "A megadott szám kettes számrendszerben: " << szam2;

Kettes számrendszerből tízesbe való alakítás

int szam2;
int szam10 = 0;
int hatv = 1;

cout << "Add meg a számot: "; cin >> szam2;

while( szam2 > 0)
{
    szam10 += (szam2 % 10) * hatv;
    hatv *= 2;
    szam2 /= 10;
}

cout << "A megadott szám tízes számrendszerben: " << szam10;

Last updated