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;

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

>> 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...

程序如下: %输出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 希望对你有帮助!

C = []; for i = 100 : 200 if isprime(i) C = [C i]; end end

素数就是只能被1和本身整除的整数。j依次为100到1000之内的整数(每次循环+1),i为从2到j-1的依次+1的整数,判断j能否被i整除,若都不能则j即为素数,记下标志位flag,并将j计入数组prime中。输出prime

% 主函数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

prime(200); 直接得到小于200的所有素数。 如果一定要用循环,那么用factor函数 j = 1; for i = 1:200 temp = factor(i); if numel(temp)

改完的如下: clear all disp('10000以内全体素数:') count=0; for i=2:10000 j=2; % 每次外循环,j都要从头再来,所以要拿到外循环里。 k=sqrt(i); while j if rem(i,j)==0 break else j=j+1; end if j>k fprintf('%5d',i) % 给你改成%5d了,要...

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

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