为了测试Golbach猜想,我找到了下面的代码,但是当我把它弄出来时,这只能给出素数组合的数量,但事实上我所寻找的是质数,我的意思是素数使我得到偶数。 有人可以帮我改变matlab中的下面代码来获得几个素数吗?
function y=goldbach_partition(n)
if mod(n,2)==0
y=0;
for i=2:floor(n/2)
if isprime(i) & isprime(n-i)
y=y+1;
end;
end;
end;
提前多多感谢:)
答案 0 :(得分:2)
这非常简单。如果值为i
(和{{1},则创建一个新数组,该数组将存储数组中的素数n-i
(或i
...无法确定)传递标准,然后返回该数组。顺便说一句,您应该将n-i
语句移到y=0
语句之外,因为如果if
是奇数,您将永远不会看到n
输出并且您将获得错误。
这样的事情:
y
我不确定您之后使用的是哪个素数 - 如果它是function [y,pmes]=goldbach_partition(n) %// Change
y = 0; %// Change
pmes = []; %// Change
if mod(n,2)==0
for i=2:floor(n/2)
if isprime(i) & isprime(n-i)
y=y+1;
pmes = [pmes; i n-i]; %// Change
end
end
end
或i
,那么我已经将它们都添加了。我还确保两个素数应该满足条件放在矩阵的一行中。这样,当一对素数通过条件时,每一行都会给你。
因此,上面的代码不仅会返回素数的总数,而且还会返回通过该条件的所有素数的数组。
然后你将在MATLAB中以这种方式调用你的函数:
n-i