赞
踩
使用MATLAB实现求素数的方法大同小异,这是在自己做作业时整理的几种,有用的话可以看一下!
NUM.1
y = [];
for i = 1:1:1000;
for j = 2:1:i-1
if (mod(i,j)==0) break;%以此判断该数字是否可以被前面的数字整除,
end
end
if i == 2
y = cat(1,y,2);%cat函数,储存使用
end
if(mod(i,j)~=0)
y = cat(1,y,i);
end
end
NUM.2
y = [];
for i = 2 : 1000 %外层循环,i的初值为2,终值为1000
for j = 2:1000 %内层循环,j的初值为2,终值为1000
if(~mod(i,j)) % i除以j取余后再取反
break; % 跳出循环
end
end
if(j > (i/j)) %检查是否有其他除数
y = cat(1,y,i);%输出素数
end
end
NUM.3
y = [];
%%
for k = 2:1:1000
s = 0;
for j = 2:1:k-1
if (mod(k,j)==0)
s = s + 1;%在此处相当于把s当做一个标志位来使用
end
end
if (s == 0)
y = cat(1,y,k);
end
end
%%
y
NUM.4
y = [];
for m = 2:1:1000
n = fix(sqrt(m))+1;
for k = 2:n
if mod(m ,k)==0,break;
end
end
if k==n
y = cat(1 , y , m);
end
end
NUM.5
y = [];
for m = 1:1000
n = m-1;
for k = 2:1:n
if (mod(m ,k)==0) break;
end
end
if k==n
y = cat(1 , y , m);
end
end
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。