matlab写程序:已知m,n为正整数,试写一算法,求正整数m,n的最大公约数
发布网友
发布时间:2022-06-21 15:39
我来回答
共1个回答
热心网友
时间:2022-06-21 16:38
基本解答如下:
(1-1):
function [b,y] = by(m,n)
b=lcm(m,n);%最小公倍数
y=*(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
自己可以调试看看,祝你成功!