赞
踩
讲解视频:可以在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 的质数的行向量。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。