вторник, 25 июня 2013 г.

Специальный триплет Пифагорейский


Пифагорейский триплет это набор трех чисел, a < b < c, для которых,
a2 + b2 = c2
Например, 32 + 42 = 9 + 16 = 25 = 52.
Есть только один Пифагорейский триплет для которого a + b + c = 1000.
Найти произведение abc

Решение по C++
#include <iostream>
#include <math.h>

bool is_triplet(int a, int b, int c);

int main()
{
    for (int i=1; i<=998; i++)
    {
        for (int j=i+1; j<=999; j++)
        {
            for (int k=j+1; k<=1000; k++)
            {
                if (is_triplet(i,j,k))
                    if (i+j+k == 1000)
                    std::cout << i*j*k << std::endl;
            }
        }
    }
    return 0;
}

bool is_triplet(int a, int b, int c)
{   
    if ((pow(a,2) + pow(b,2)) == pow(c,2))
        return true;
    return false;
}

Результат
31875000

Комментариев нет:

Отправить комментарий