不是有 函数 isprime 嘛
代码示例:(求0—100之间的所有素数)
clc;
clear all;
a = 0:100; %0-100的向量
b = isprime(a); %判断是否为素数
ind = find(b); %返回不是0的下标位置
a(ind)
%%%%%%%my_funcm%%%%%%%%%%%
function y=my_func(x)
t=round(x/2);
y=1;
for i=2:t
if round(x/i)==x/i
y=0;%不是素数
break;
end
end
end
%%%%%%%%%%%%%%%%%%
%以下程序在命令窗口执行
x=input('x=');
if my_func(x)==0
disp('不是素数');
else
disp('是素数');
end
素数就是只能被1和本身整除的整数。j依次为100到1000之内的整数(每次循环+1),i为从2到j-1的依次+1的整数,判断j能否被i整除,若都不能则j即为素数,记下标志位flag,并将j计入数组prime中。输出prime
flag是个标志位,用来判断当前的m是不是质数,while语句穷举了m是否能被2到m-1整除也就是能否被i到j整除,当找到有能整除的情况直接跳出while,下面的if语句也通不过,直接就来到for循环,判断下一个数是否为素数。当执行完while都没有找到整除,那么此时flag不会被置为0,if语句通过,把素数保存在一个矩阵prime中,打印结果,n是用来计数的告诉你这是第几个素数。
for m=101:1:200%遍历101至200的数
k=fix(sqrt(m));%求出某个数较小因子的最大值
for i=2:k+1 %因子遍历
if rem(m,i)==0;%对求余数
break%如果能被整除,则终止遍历
end
end
if i>=k+1 %当遍历的因子大于等于K+1时,也就是上面那个循环找不到余数为0的i
disp(int2str(m))%当找不到令m余数为0的i时,即为素数,显示
end
end
以上就是关于.采用matlab程序设计语言实现判断一个给定的数是否是素数全部的内容,包括:.采用matlab程序设计语言实现判断一个给定的数是否是素数、matlab求一个数是否为素数,再编写一主程序(脚本文件),要求通过键盘输入一个整数,然后判断其是否为素、用Matlab,求[0, 1000]以内的全部素数。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)