试用MATLAB编写一个函数文件(subject4.m),实现以下功能

试用MATLAB编写一个函数文件(subject4.m),实现以下功能:(1)A=subject(N):输入N为大于1的整数;输出A为1~N内的所有质数;(2)A=sub... 试用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)当函数输入违规时,输出相应的错误提示,结束函数。
展开
 我来答
bingxuechangya
2012-12-31 · 超过16用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:40.6万
展开全部
function A=subject4(varargin)
if nargin==0
error('请至少输入一个大于1的整数');
end
N = varargin{1};
if N~=fix(N) || sum(size(N))~=2 || N<=1
error('N必须是大于1的整数');
end
if nargin==1
A=primes(N);
fprintf('输出A为1~N内的所有质数为:')
disp(A)
return;
end
n=cell2mat(varargin(2:end));
for i=1:nargin-1
if ~isprime(n(i)) || sum(size(n(i)))~=2 || n(i)<=1
error('除了第一个数外,输入的数必须是大于1的质数');
end
end
N=N*ones(1,nargin-1);
len=fix(N./n);
A=n(1)*(1:len);
for i=2:nargin-1
A=intersect(A,n(i)*(1:len));
end
fprintf('输出A为1~N内的n倍数或公倍数为:')
disp(A)
return;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式