Числа Рамануджана
Есть известное число Рамануджана - 1729. Это наименьшее число, выражаемое как сумма двух кубов двумя разными способами. Другими словами:
1729 = 1^3 + 12^3 = 9^3 + 10^3.
Какие есть еще числа Рамануджана, которые больше 1729? Можно как-то вычислить эти числа с помощью программы? Помогите, пожалуйста...
Ответы (2 шт):
Для начала возьмите перебор. 4 переменные 1 тождество если тождество верно то на печать иначе следующий. Определитесь с границами поиска и в бой
Ну, на питоне напишите сами, а на С++, чтоб найти такие числа до миллиарда примерно - вот такой простенький переборный код,
#include <vector>
#include <iostream>
#include <iomanip>
#include <map>
using namespace std;
map<int,vector<pair<int,int>>> m;
int main()
{
const int N = 1000;
for(int i = 1; i <= N; ++i)
for(int j = i; j <= N; ++j)
m[i*i*i+j*j*j].emplace_back(i,j);
for(const auto& [n,v]: m)
if (v.size() > 1)
cout << n << " " << v.size() << endl;
}
который менее чем за полсекунды выкидывает результат - список таких чисел. Дописать, если нужно, вывод самих возводимых в куб чисел - одна строка :)
Кстати говоря, эти числа - последовательность A001235 в OEIS.