求解matlab编程问题
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 10:32:32
求解matlab编程问题
编写一个函数显示1到n间素数所构成的数列中最长等差数列,另外,请私信,采纳最快且正确的回答
编写一个函数显示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
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