питагорова теорема - https://bg.wikipedia.org/wiki/%D0%9F%D0%
условие - да се състави програма за числата от 1 до 100, която пресмята и отпечатва стойностите на решението на питагоровата теорема. уравнението е със условие X на квадрат плюс/+/ Y на квадрат е равно/=/ Z на квадрат. ясно е че не всички числа произволно избрани ще съставят питагоровата теорем. за това трябва да отделим тези които отговарят на пресмятането в уравнението. като за начало сами можем да намерим първите стойности които са верни за това уравнение. това са така наречените числа на питагор, 3, 4, и 5 за които е вярно че 3*3+4*4=5*5. или 9+16=25. това са най малките стойности които решават уравненито. за това са наречени числа на питагор, защото след много пресмятане на различни стойности първите дали резултат числа са именнно 3,4 и 5. както ставя ясно действието - повдигане на квадрат сме изобразили като умножение на стойност сама със себе си, за да се получи функцията повдигане на квадрат на дадена стойност.
------------------------------------
//da se sastavi programa za namirane na niakolko
//celi chisla x , y , z , koito sa reshenie na
// uravnenieto x*x+y*y=z*z
// X kvadrat + Y kvadrat = Z kvadrat
// pitagorovata teorema za chislata ot 1 do 100
// moje da badat vavedeni i po golemi stojnosti
// kato dolnata granica e stoinost 0
// gornata granica e primerno do 65000
// za po golemi stoinosti ima malko promiana
// v registarciyata na promenlivite

#include <stdio.h> // vklyuchvane na standartna
                             // vhodno-izhodna biblioteka
                          // za pokazvane na rezultatite
                              // na ekrana na kompuytara

int main(void)        // inicializacia na glavnata funkcia
                             // za vsiaka edna programa na C/C++
                    
{
int x = 0;
            // inicializacia na promenliva ot tip celochislena
int y = 0;            // inicializacia na promenliva ot tip celochislena
int z = 0;            // inicializacia na promenliva ot tip celochislena

int xkvadrat = 0;    // inicializacia na promenliva ot tip celochislena
int ykvadrat = 0;    // inicializacia na promenliva ot tip celochislena
int zkvadrat = 0;    // inicializacia na promenliva ot tip celochislena

int sumakvadrat = 0;    // inicializacia na promenliva ot tip celochislena
int counter     = 0;    // inicializacia na promenliva ot tip celochislena
// int reshenie    = 0;    // inicializacia na promenliva ot tip celochislena
// v momenta e komentar

for(x=1;x<=100;x=x+1) //nachalo na parvi cikal za presmiatane na formulata
{
    xkvadrat = x*x;        // prisvoiavane na stoinost ot tekushtata stonost na
                                  //na promenlivata v cikala
    
    for(y=1;y<=100;y=y+1)    //nachalo na vtori /vlojen/ cikal za presmiatane na formulata
{
    ykvadrat = y*y;            // prisvoiavane na stoinost ot tekushtata stoinost
                                     //na promenlivata vav vtoria cikal

    for(z=1;z<=100;z=z+1)    //nachalo na treti /vlojen vav vtoria /
                                        //cikal za presmiatane na formulata
{
    zkvadrat = z*z;            // prisvoiavane na stoinost ot tekushtata stoinost
                                       //na promenlivata vav tretia cikal /vlojen vav vtoria/
    
    sumakvadrat = xkvadrat + ykvadrat; // sumirane na rezultatite ot presmiataneto
                                                            // na dvete promenlivi
    
    if(sumakvadrat == zkvadrat)            // proverka za ravenstvo po stoinost na dvete
                                                            // promenlivi
        {counter = counter +1;               // ako dvete stoinosti sa ravni = promenlivata        
                                                          // broiach se uvelichava s 1 , koeto oznachava che
                                                           // za tezi stoinosti na tekushtite promenlivi ot trite
                                                           // cikala ima reshenie na uravnenieto
    printf("counter =%d ",counter);        // otpechatvane na tekushtia nomer na reshenieto
    printf("x = %d ",x);                        // otpechatvane na tekushtata stoinost za parvata promenliva
    printf("y = %d ",y);                          // otpechatvane na tekushtata stoinost za vtorata promenliva
    printf("z = %d ",z);                       // otpechatvane na tekushtata stoinost za tretata promenliva
        printf("\n\n");                          // otpechatvane na dva prazni reda za razdelenie na rezultatite
    
        }                                         // zatvariashti skobi na ciklite i proverkite
    
}
    
}
    
}
    printf("press ENTER key for end"); //otpechatvane na napdis za o4akvane za natiskane na klavish
    getchar();                                       // za krai na programata
}    // zatvariashta skoba na glavnata funkcia
    // krai na sors koda

някои от резултатите на програмата, началните стойности може да видите ако напишете и компилирате сорс кода в компилатора.
тъй като стойността започва от 1 на всички променливи, първите числа които трябва да излязат са : за X=3, Y=4, Z=5. това са известните числа на питагор, който вцъщност са основата на теоремата. останалите стойности до края на трите вложени цикъла ще получите когато направите програмата със сорс кода който съм написал.




показния резултат може да пресметнете някои от посочените числа за да видите дали програмата е работила вярно до края. ако забелешите че някои резултати се повтарят, това е така защото във вложените цикли са превъртяни всички комбинации на променливите, като не е сложена проверка дали има повторение на резлутата със друга комбинация. в някои случаи проверка за повторение се налага, в други не, за това в този пример не съм сложил такава проверка за повторение на резултата.