Показать все пары простых чисел, сумма которых равна 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