Stop value in loop for repeating

18 次查看(过去 30 天)
clc;
clear;
close all;
rng('shuffle');
myint = randi([4,100]);
while mod(myint,2) ~= 0
myint = randi([4,100]);
end
fprintf('%d is the sum of these prime numbers\n',myint);
myprime = primes(myint);
mylength = ceil(length(myprime)/2);
for i=1:length(myprime)
for k=1:length(myprime)
if(myprime(i)+myprime(k)== myint)
num1 = myprime(i);
num2 = myprime(k);
fprintf('%d = %d + %d \n',myint,num1,num2)
end
end
end
i am trying to create the goldbach conjecture but I do not want the prime numbers that have already been listed to repeat. eg 7+5 and 5+7.

采纳的回答

James Tursa
James Tursa 2020-3-12
Not sure if you need the numbers to be different or not. Either this:
for k=i:length(myprime)
or this
for k=i+1:length(myprime)
  2 个评论
Pallav Patel
Pallav Patel 2020-3-12
Thank you james. Both of them work perfectly. Could you please elaborate more as I am trying to understand the code
James Tursa
James Tursa 2020-3-12
This simply forces myprime(k) to be greater than (or equal to depending on which code you use) the value of myprime(i). So you will never get both the 5 + 7 and the 7 + 5 choices.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Animation 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by