mwbr.net
当前位置:首页 >> 用mAtlAB循环结构找出1000以下所有的质数 >>

用mAtlAB循环结构找出1000以下所有的质数

% 用函数 >>primes(1000); % 用循环 R = []; for k = 1:1000 s = 0; for p = 1:k if mod(k,p)==0 s = s+1; end; end; if s==2 R = [R;k]; end; end;

>> primes(1000) ans = Columns 1 through 23 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 Columns 24 through 46 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 Columns...

k=1; for ii=1:50 if isprime(ii)==1 s(k)=ii; k=k+1; end end s

a=100:200; b=isprime(a); c=a(b) 这样就可以直接找到了

% 用函数 >>primes(1000); % 用循环 R = []; for k = 1:1000 s = 0; for p = 1:k if mod(k,p)==0 s = s+1; end; end; if s==2 R = [R;k]; end; end;

第一种方法: matlab本身就带求n以内素数的函数,叫primes() 所以最简单的就是直接用primes(1000) 篇幅关系我用100举例,比如 >> primes(100) ans = Columns 1 through 17 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 Columns 18 through 2...

程序如下: %输出1-1000的质数 '1-1000的质数有:' for m=1:1000 n=fix(sqrt(m))+1; for k=2:n if mod(m,k)==0,break, end %中止循环 end if k==n disp(m) end end 希望对你有帮助!

flag是个标志位,用来判断当前的m是不是质数,while语句穷举了m是否能被2到m-1整除也就是能否被i到j整除,当找到有能整除的情况直接跳出while,下面的if语句也通不过,直接就来到for循环,判断下一个数是否为素数。当执行完while都没有找到整除...

% 主函数function test()x = [];for i=1:100flag = isprime(i);if flagx = [x,i];endenddisp('1-100之间的质数有:');xend% 子函数function out = isprime(n)flag = 1;for i=2:ceil(sqrt(n))if mod(n,i)==0flag = 0;break;endendout = flag;end

% 主函数 function test() x = []; for i=1:100 flag = isprime(i); if flag x = [x,i]; end end disp('1-100之间的质数有:'); x end % 子函数 function out = isprime(n) flag = 1; for i=2:ceil(sqrt(n)) if mod(n,i)==0 flag = 0; break; end...

网站首页 | 网站地图
All rights reserved Powered by www.mwbr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com