作业帮 > 综合 > 作业

求解matlab编程问题

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 10:32:32
求解matlab编程问题
编写一个函数显示1到n间素数所构成的数列中最长等差数列,另外,请私信,采纳最快且正确的回答
function y=longprime(n)
y=cell(n);
for k=2:2:n
for i=1:n
    if isprime(i)
        a=i;
        y{i,k}=a;
    else
        continue
    end
    b=a+k;
    while b<=n &&isprime(b)
        y{i,k}=[y{i,k},b];
        b=b+k;
    end
end
end
nm=zeros(n);
for i=1:n
    for j=1:n
        nm(i,j)=numel(y{i,j});
    end
end
maxn=max(max(nm));
im=find(nm==maxn);
y=y{im};
        

保存,在command运行如下
n=500
y=longprime(n)
得到最长等差数列是:
y =

     7    37    67    97   127   157