早教吧 育儿知识 作业答案 考试题库 百科 知识分享

几个简单的matlab程序编写~~求帮助·(1)编写函数编写一函数求输入两个正整数m和n,求其最大公约数和最小公倍数。[b,y]=by(m,n)编写一函数判断输入的正整数n是否为素数。若为素数返回1

题目详情
几个简单的matlab程序编写~~求帮助·
(1)编写函数
编写一函数求输入两个正整数m和n,求其最大公约数和最小公倍数。[b,y]=by(m,n)
编写一函数判断输入的正整数n是否为素数。若为素数返回1,否则为0,[t]=sushu(n)
(2)在MATLAB中,magic()函数叫做魔方阵函数,该函数能够自动生成一种特别的N阶方阵(其中,N=1,3,4,5…..)。这些N阶方阵具有一个共同的奇妙的特性,即每一行、每一列或对角线上的元素之和都相等且为某一个常数。试设计一函数mag(n),对N阶魔方证验证其奇妙特性
(3)
求[2,999]中同时满足下列条件的数
(1)该数各位数字之和为奇数
(2)该数是素数
▼优质解答
答案和解析
基本解答如下:
(1-1):
function [b,y] = by(m,n)
b=lcm(m,n);%最小公倍数
y=gcd(m,n);%最大公约数
end
(1-2):
function t=sushu(n)
m=floor(sqrt(n));
for i=2:m
if mod(n,i)==0
t=0;
break;
else
t=1;
end
end
end
(2):可以一次算出每一项,发现他们都是同一个值,这个值的求法:SUM=sum(1:n^2)/n;%n阶魔幻阵特有的和
function [A,H,L,DJ,SUM]=mag(n)
A=magic(n);%产生一个n阶魔幻阵
H=sum(A);%每行的和
L=sum(A);%每列的和
DJ=sum(diag(A));%对角线和
SUM=sum(1:n^2)/n;%n阶魔幻阵特有的和
end
(3):这题我给出“该数各位数字之和为奇数”的求法,结合上面有判断素数的代码自己可以求出
该数各位数字之和为奇数:
function funct
for i=2:999
%l=floor(log10(i))+1; %提取位数
n1=floor(i/100); %取出百位数字n1
n2=mod(floor(i/10),10); %取出十位数字n2
n3=mod(i,10) ; %取出个位数字n3
nsum=n1+n2+n3;
if rem(nsum,2)~=0%判断是否为奇数
disp (i);
end
end
end
自己可以调试看看,祝你成功!