matlan编程判断1001、1007、1011是否为素数,若不是,请输出其约数
时间: 2024-03-22 13:37:03 浏览: 187
可以使用以下代码判断1001、1007、1011是否为素数,并输出其约数:
```matlab
% 定义待判断的数
nums = [1001, 1007, 1011];
for i = 1:length(nums)
n = nums(i);
is_prime = true; % 假设n是素数
% 判断n是否能被2~sqrt(n)之间的数整除
for j = 2:sqrt(n)
if mod(n, j) == 0 % 如果n能被j整除,则n不是素数
is_prime = false;
break;
end
end
% 如果n不是素数,则输出其约数
if ~is_prime
fprintf('%d的约数为:', n);
for j = 1:n
if mod(n, j) == 0
fprintf('%d ', j);
end
end
fprintf('\n');
else
fprintf('%d是素数\n', n);
end
end
```
输出结果为:
```
1001的约数为:1 7 11 13 77 91 143 1001
1007的约数为:1 19 53 1007
1011的约数为:1 3 337 1011
```
因此,1001、1007、1011中只有1011是素数,而1001和1007不是素数,其约数分别为:1、7、11、13、77、91、143、1001和1、19、53、1007。
阅读全文