1. break语句:终止当前循环,继续执行循环语句的下一语句;
  2. continue语句:跳过循环体的后面语句,开始下一个循环;
  3. 例:求[100,200]之间第一个能被21整除的整数
for n=100:200      %循环语句
  if rem(n,21)~=0    %选择语句
   continue
  end
 break
end
n

程序输出结果为n=
105
  1. 循环的嵌套
  2. 若一个 数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。求[1,500]之间的全部完数。
for m=1:500
  s=0;
  for k=1:m/2
     if rem(m,k)==0
       s=s+k;
end
end
if m==s
disp(m);
end
end

输出:6
28
496


  1. 用筛选法求某自然数范围内的全部素数。
  2. 素数是大于1,且除了1和它本身以外,不能被其他任何整数所整除的整数。用筛选法求素数的基本思想是:要找出2~m之间的全部素数,首先在2~m中划去2的倍数(不包括2),然后划去3的倍数(不包括3),由于4已被划去,再找5的倍数(不包括5),...,直到再划去不超过(根号m)的倍数,剩下的都是素数。
    m=input('m=');
    p=1:m;
    p(1)=0;
    for i=2:sqrt(m)
       for j=2*i:i:m
        p(j)=0;
    end
    end
    n=find(p~=0);
    p(n)
    
    m=9
    
    ans =
    
         2     3     5     7

    外循环控制i从2~根号下m变化,内循环在p中划去i的倍数(不包括i),p中剩下的数都是素数。find函数找出p非0元素的下标并赋给变量n(注意:n为向量)

  3. 关于在p中划去i的倍数,可利用矩阵运算一步完成:
  4. m=input('m');
    p=2:m;
    for i=2:sqrt(m)
        n=find(rem(p,i)==0&p~=i);
    p(n)=[];
    end
    p
    
    m9
    
    p =
    
         2     3     5     7

     

posted on 2014-09-23 22:27  奶味洋葱头  阅读(2481)  评论(0编辑  收藏  举报