MATLAB练习题:质数(Prime number)的判断

  讲解视频:可以在bilibili搜索“MATLAB教程新手入门篇——数学建模清风主讲”。

MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili


质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个正因数的数)。给定任意一个大于100的自然数n(例如n=135389),请判断n是否为质数。

思路1:我们可以遍历从2到n-1的所有整数,检查它们是否能够整除n。如果找到任何一个能够整除n的整数,那么n就不是质数;否则,n就是质数。

n = 135389;  %要判断的数n
is_prime = true;   % 初始化标志变量is_prime为true,此时代表n是质数
for ii = 2:n-1  
    % 检查ii是否能够整除n
    if mod(n, ii) == 0
        % 如果能整除,则n不是质数,将标志变量is_prime重新赋值为false
        is_prime = false;
        break;  % 跳出循环
    end
end
disp(is_prime)

思路2:缩小搜索的范围,只需要考虑奇数,且搜索的上界调整为ceil(sqrt(n)),即根号n的向上取整

tic
% 输入要判断的数n
n = 135389;
% 初始化标志变量,假设n是质数
is_prime = true;
for ii = 2:ceil(sqrt(n))  % 向上取整
    % 检查ii是否能够整除n
    if mod(n, ii) == 0
        % 如果能整除,则n不是质数
        is_prime = false;
        break;  % 跳出循环
    end
end
is_prime
toc

拓展:MATLAB内置函数isprime可以直接判断某个数是否为质数,大家可以和内置函数的结果对比。还有下面这个内置函数:p = primes(n) 返回包含所有小于或等于 n 的质数的行向量。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值