一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称之为绝对素数。例如13是绝对素数,试用matlab求所有两位绝对素数 要求,定义一个判断素数的函数文件
时间: 2024-05-15 17:18:01 浏览: 198
一个素数,当她的数字位置对换以后仍为素数,这样的数称为绝对素数。
5星 · 资源好评率100%
首先定义一个判断素数的函数文件,命名为`isPrime.m`:
```matlab
function result = isPrime(n)
% 判断一个数字是否为素数
if n <= 1
result = false;
elseif n == 2
result = true;
else
% 从2到sqrt(n)遍历,判断是否有因子
for i = 2:sqrt(n)
if mod(n, i) == 0
result = false;
return
end
end
result = true;
end
end
```
然后,在主函数中遍历所有两位数,并分别判断其所有数字位置的组合是否为素数:
```matlab
for i = 10:99
% 分离出十位和个位数字
ten = floor(i / 10);
unit = mod(i, 10);
% 所有数字位置的组合
nums = [ten unit; unit ten];
% 判断组合中是否有数字不是素数
if all(arrayfun(@isPrime, nums))
fprintf('%d ', i)
end
end
```
这样,就可以求出所有两位绝对素数了。
阅读全文