Поиск всех троек по формуле Евклида

Наш классовый проект состоял в том, чтобы написать наиболее эффективную программу, которую мы могли найти, чтобы найти все тройки до заданного числа, где ни один (a, b, c) не идет выше этого числа, и затем распечатать число сравнений, которые программа сделала, чтобы найти тройки. Формула Евклида кажется наиболее эффективной, но не дает ВСЕХ троек. Я обнаружил, что фактор «k = 3» даст ВСЕ тройки, а не только примитив (дата назначения прошла, и я просто пытаюсь найти лучший алгоритм)

Мой вопрос в том, считает ли мой счетчик все тесты, потому что он говорит мне, что я тестирую только один раз за тройку.

Это мой код

#include <iostream>
using namespace std;

void pythFunc2(int max)
{

int counter=0;
for (int n = 1; n <= max; ++n)
{
for (int m = n + 1; m <= max && (m*m + n*n) <= max; ++m)
{
cout<<m<<"+"<<n<<"="<<endl;
counter++;
int a = ((m*m)-(n*n));
int b = (2*m*n);
int c = ((m*m)+(n*n));
cout << a << "sqrd + " << b << " sqrd = " << c <<" sqrd." <<endl;
if(((m*m)-(n*n))*3<=max && (2*m*n)*3 <=max && ((m*m)+(n*n))*3 <= max)
{
cout << a*3 << "sqrd + " << b*3 << " sqrd = " << c*3 <<" sqrd." <<endl;
}
}
}
cout<<"There were "<<counter<<" comparisons."<<endl;
return;
}

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]