matlab,求大神指教.试用MATLAB编写一个函数文件(subject4.m),实现以下功能:(1)A=subject(N):输入N为大于1的整数;输出A为1~N内的所有质数;(2)A=subject(N,n):输入n为大于1的质数,输出A为1~N内

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/08 06:53:51
matlab,求大神指教.试用MATLAB编写一个函数文件(subject4.m),实现以下功能:(1)A=subject(N):输入N为大于1的整数;输出A为1~N内的所有质数;(2)A=subject(N,n):输入n为大于1的质数,输出A为1~N内

matlab,求大神指教.试用MATLAB编写一个函数文件(subject4.m),实现以下功能:(1)A=subject(N):输入N为大于1的整数;输出A为1~N内的所有质数;(2)A=subject(N,n):输入n为大于1的质数,输出A为1~N内
matlab,求大神指教.
试用MATLAB编写一个函数文件(subject4.m),实现以下功能:
(1)A=subject(N):输入N为大于1的整数;输出A为1~N内的所有质数;
(2)A=subject(N,n):输入n为大于1的质数,输出A为1~N内能整除n的所有整数;
(3)A=subject(N,n1……nK):输入n1……nK为K个大于1的质数(K为任意整数),输出A为1~N内能同时整除n1……nK的所有整数;
(4)当函数输入违规时,输出相应的错误提示,结束函数.

matlab,求大神指教.试用MATLAB编写一个函数文件(subject4.m),实现以下功能:(1)A=subject(N):输入N为大于1的整数;输出A为1~N内的所有质数;(2)A=subject(N,n):输入n为大于1的质数,输出A为1~N内
function a=subject4(varargin)%保存成subject4.m
a(1)=0;
if nargin==0
%a(1)=varargin;
disp('至少请输入一个参数')
end
if nargin==1
t=varargin{1};
n=1;
for i=2:t
if zhishu(i)==0
a(n)=i;
n=n+1;
end
end
end
if nargin==2
n1=1;
t1= varargin{1};
t2= varargin{2};
for i1=1:t1
if mod(i1,t2)==0
a(n1)=i1;
n1=n1+1;
end
end
end
if nargin>2
t11=nargin;
n11=1;
for i3=1:varargin{1}
c=1;
for i4=2:t11
if mod(i3,varargin{i4})~=0
c=0;
end
end
if c==1
a(n11)=i3;
n11=n11+1;
end
end
end
end
function tf=zhishu(a)%保存成zhishu.m求是否为质数,返回0为质数
tf=0;
for i=2:a/2
if mod(a,i)==0
tf=1;
end
end
end
subject4()
res=subject4(20)
res=subject4(20,2)
res=subject4(20,2,3)
%和刚刚两个.m文件保存在文件夹里面,运行这个文件在输出窗口就可以看到结果
不明白可追问