MATLAB--190802--欧拉计划(五)

写在最前面
本人为MATLAB小菜鸟,本博客作为阶段学习的小总结,欢迎大家学习交流!
坚持是胜利的基石!
题目五
在这里插入图片描述
题目的意思就是求出最小的能够被1-20整除的正数,其实说白了就是求1-20的最小公倍数。
思路
1.通过查阅资料发现,MATLAB中有求最小公倍数的函数f=lcm(x,y),那这样就很方便了,直接利用该函数,求1-20的最小公倍数。1,2–2;2,3–6;6,4–12,以此类推得出结果。
2.一般方法,假如并不知道有f=lcm(x,y)的函数,我们可以求出两个数的最小公倍数,,最简单的方法就是两个数中较大的数或者其倍数可以整除较小的数,那么这个数就是最小公倍数。注意在这个过程中改变i的值,x应当从2开始。
代码块
方法一:利用函数求解

%方法一:利用lcm最小公倍数的函数求解(另外,可以利用gcd(x,y)求最大公约数)
disp('求1-20的最小公倍数:')
clear;
a=1;
for i=2:20
    b=lcm(a,i);
    a=b;
    i=i+1;
end
fprintf('所求1-20的最小公倍数为:%d\n',b);

方法二:正常方式求解,不通过函数

%方法二:正常求解
  clear;
  b=3;
  x=2;
  for i=2:20
    while mod(b,i)~=0
        b=b*x/(x-1);  %该语句的目的是实现b*2,b*3等等
        x=x+1;
    end
        x=2;  %恢复初始x的值,当从新的b开始时,应当是b*2,b*3
        i=i+1;
  end
 fprintf('1-20的最小公倍数为:%d\n',b);

结果
最小的能够被1-20整除的正整数为232792560

最后,欢迎大家批评指正,一起交流!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摸鱼王子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值