更改代码以获得Goldbach猜想

时间:2015-08-31 16:08:20

标签: matlab

为了测试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;

提前多多感谢:)

1 个答案:

答案 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