|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1 _3 d, A1 k' P8 O; x
MATLAB源程序代码分享:MATLAB查找素数的源程序代码& D% p1 H6 \/ Z5 o& z/ N4 K, i0 ?5 n
* m% m/ ], S3 Y7 l" u( B" i%% 自定义一段算法代码, 求 50 以内的素数
& t" B3 r5 b5 L8 T! Y* c! h8 A2 Eclear;clc;close all
* P% q& ^' R" Z4 \ss=[]; % ss 用来标记是否为素数: u4 G+ f- {, C, [: l e
pr=[2 3]; % pr 用来存放素数, 2 和 3 均为素数, 先存放在 pr 中- [3 G2 o$ X V9 z* C( o' p+ H
for k=4:50 % 查找 4~50 里的素数1 X# T- ]8 V+ u: a* K# W7 g( W
for m=2:fix(sqrt(k))
! X0 _& b" C" g3 H if mod(k,m)==0 % 判断 k 是否可以被 m 整除, 如果能被整除, 说明 k 不是素数, 用 ss=0 来标记5 ^2 V# G2 E7 t0 F
ss=0; ) h3 J& Z) ]5 t! R1 g% Y
break % 跳出内循环/ l: `; E9 h9 M5 j( P# M
else
4 C2 B; z7 }% d! A3 v ss=1;; @0 W$ R( A0 k
end5 m( n# S. i1 O( ? t* T) `$ K8 U
end
$ R# b9 y& R K& g- { ; T/ `: b9 P8 s5 i E3 j
if ss==1 % 如果 k 是素数, 则保存至 pr
7 h! O& M, l3 {4 D( M( i' h pr=[pr,k];! `. O! x7 p; _3 X) x
end0 _7 S: i. u: X4 K1 q( Z$ h
end
w1 q4 O# P; [! n Z( Y6 Q) U0 E P4 o3 g) [
%% 使用 MATLAB 自带的 primes 函数, 直接求 50 以内的素数
- E/ U4 [2 S# b, S) Fp=primes(50);
$ X' P! J- N5 k' g% C& r7 I: B- \ k7 I6 t# Y
%% 比较两种方法的结果是否一致
2 F4 |9 V4 g O0 ^5 Bpr
; S1 ]4 x* ~1 e3 s7 j v/ ?p4 n7 l. T X( G. w( I2 x
|
|