MATLAB求200以内质数
时间: 2024-10-21 17:13:48 浏览: 33
MATLAB是一种强大的数学软件,可以用来编写算法解决各种计算问题,包括寻找一定范围内的质数。以下是使用MATLAB的一个简单方法来找出200以内的所有质数:
```matlab
% 定义一个函数用于检查是否为质数
function isPrime = isprime(n)
if n <= 1
isPrime = false;
elseif n == 2
isPrime = true;
else
for i = 2:sqrt(n)
if rem(n, i) == 0
isPrime = false;
break;
end
end
end
end
% 创建一个向量从2到200,并筛选出质数
primes = vectorize(ismember(2:200, isprime(2:200)));
% 输出结果
disp("200以内的质数:");
disp(primes);
```
在这个例子中,`isprime`函数通过遍历2到n的平方根,如果n能被任何一个数整除,则n不是质数。然后,我们使用`vectorize`将`isprime`函数应用于数组并筛选出结果。
相关问题
matlab求1000以内素数
以下是 MATLAB 代码,可以求出 1000 以内的素数:
```matlab
% 初始化变量
n = 1000;
is_prime = true(1, n);
% 剔除 1 和偶数
is_prime(1) = false;
for i = 4:2:n
is_prime(i) = false;
end
% 埃拉托色尼筛法
for i = 3:sqrt(n)
if is_prime(i)
for j = i^2:i:n
is_prime(j) = false;
end
end
end
% 打印素数
fprintf('2 ');
for i = 3:n
if is_prime(i)
fprintf('%d ', i);
end
end
```
运行代码后,会输出 2 到 1000 之间的素数。
matlab求10000以内素数
以下是 MATLAB 代码,可以求出 10000 以内的素数:
```matlab
% 求10000以内的素数
n = 10000;
prime = true(1, n);
prime(1) = false;
for i = 2:sqrt(n)
if prime(i)
for j = i^2:i:n
prime(j) = false;
end
end
end
% 输出素数
for i = 1:n
if prime(i)
fprintf('%d ', i);
end
end
```
这段代码先设置一个长度为 n 的布尔向量 prime,用于标记每个数是否为素数。然后从 2 到 sqrt(n) 依次枚举每个数,如果它是素数,则将它的倍数标记为非素数。最后输出所有被标记为素数的数。
阅读全文