|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
. n6 R }# O' ?% q
MATLAB源程序代码分享:MATLAB查找素数的源程序代码
! h( f3 o: {/ s$ F( [3 B, K- T9 M0 z4 ~& o* ~6 v
%% 自定义一段算法代码, 求 50 以内的素数6 O9 ]4 d1 `# z) F7 f& h' V& y7 p
clear;clc;close all
2 p6 G: @2 G, A* v" s' {ss=[]; % ss 用来标记是否为素数
% w& J% A7 A! H; H& ]pr=[2 3]; % pr 用来存放素数, 2 和 3 均为素数, 先存放在 pr 中# _# i+ I6 f. ^) S9 H
for k=4:50 % 查找 4~50 里的素数
. Z) q, ~* j6 D for m=2:fix(sqrt(k))
X4 H% f' L! t7 i% G7 R if mod(k,m)==0 % 判断 k 是否可以被 m 整除, 如果能被整除, 说明 k 不是素数, 用 ss=0 来标记
- D2 m3 @3 n- J* R) F3 j0 L ss=0;
5 B$ y7 E) D8 ] break % 跳出内循环
; l; z' u# c; `( G) R! A else
4 f2 Z0 ?, l# S; c- B, d( E ss=1;
Y8 @/ }! ]* w( n7 n* G3 H/ G( C end
1 @3 Z O$ ^& L) ~8 r% O( } end$ D, i% G5 ^( N
! x7 G5 b! T( \ if ss==1 % 如果 k 是素数, 则保存至 pr
* C: c( x. v3 u; W8 O pr=[pr,k];! X o z2 o6 V
end& i8 x& a# c2 [9 h4 z1 D
end
! h2 b0 T) T! [2 g+ y- n! }9 h5 h' g6 @
%% 使用 MATLAB 自带的 primes 函数, 直接求 50 以内的素数
! I! f9 H9 J) |, f# ^8 ?p=primes(50);
( ?& e3 c5 {) C' j1 X/ D8 e' b
3 t; Q' V1 E: Y* Q$ ^1 k" p%% 比较两种方法的结果是否一致
+ P' P/ f: r$ i% Q- ppr4 l8 W4 O m6 Z, b, v
p+ c0 v2 O" B3 }7 P* Z# }6 G
|
|