当前位置:   article > 正文

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

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就是质数。

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

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/326362
推荐阅读
相关标签
  

闽ICP备14008679号