Показать все пары простых чисел, сумма которых равна N

Я работаю над кодом для гипотезы Гольдбаха для отображения пар простых чисел, сумма которых равна положительному четному числу N. Мне удалось найти эти пары простых чисел, но я хочу напечатать все эти пары простых чисел, равные N, в одном одна линия.

Любая подсказка о том, как я смогу решить это для достижения желаемого результата? Это код, который я разработал:

      function goldB(N)
    for x = 6:2:N
        P = primes(x);
        for y = 1:length(primes(x))
            for z = 0:(length(P)-y)
                if P(y) + P(y+z) == x
                    fprintf('\n%d = %d + %d',x,P(y),P(y+z));
                end
            end
        end
    end
end

1 ответ

Я думаю, что самый простой способ — изменить вызов функции так, чтобы он печатал целевой номер отдельно (вместе с новой строкой), а затем также печатал все связанные с ним пары (по мере их нахождения):

      function goldB(N)
    for x = 6:2:N
        fprintf('\n%d', x);
        P = primes(x);
        for y = 1:length(primes(x))
            for z = 0:(length(P)-y)               
                if P(y) + P(y+z) == x
                    fprintf('= %d + %d', P(y), P(y+z));
                end
            end
        end
    end
end
Другие вопросы по тегам