num = 29; % 输入要检查的数字
if isPrime(num)fprintf('%d 是一个素数。\n', num);
elsefprintf('%d 不是一个素数。\n', num);
end
判断素数的函数 isPrime
function result = isPrime(n)if n <= 1result = false; % 1及以下不是素数elseif n == 2result = true; % 2 是素数elseresult = true; % 默认认为是素数for i = 2:sqrt(n)if mod(n, i) == 0 % 如果能被某个数整除,则不是素数result = false;break;endendend
end
解释:
-
主程序部分:
num = 29;
定义了要检查的数字。- 通过
isPrime(num)
调用函数检查num
是否是素数。 - 根据函数返回值,打印是否是素数。
-
isPrime
函数:- 该函数检查输入的数字是否是素数。
- 对于数字
n <= 1
,直接返回false
(因为 1 及以下的数字不是素数)。 - 对于数字
n == 2
,返回true
(2 是素数)。 - 对于其他数字,函数使用循环检查是否能找到能整除
n
的数字。如果找到,则n
不是素数,返回false
。 - 只检查到
sqrt(n)
,因为超过sqrt(n)
的因数会成对出现,减少了计算量。