求一道matlaB题答案啊.急用.

1个回答

  • 第一题答案

    function decomposetoprime(r)

    %证明大于6的任意整数都能分解为两个质数之和

    if ~isvector(r),return;end;%向量判定

    if size(r,1)>1|| size(r,2)>1 ,return;end;%单数判定

    if ~(r==fix(r)),return;end;%整数判定

    if ~(r>=6),return;end;%大于6判定

    if mod(r,2) ,return;end;%偶数判定

    %开始

    p=[];q=[];

    for i=1:r

    if isprime(i) && isprime(r-i)

    p=[p i];

    q=[q r-i];

    end;

    end;

    k=size(p,2);

    if ~k ,return;end;

    if mod(k,2)

    k=(k+1)/2;%k奇数修正

    else

    k=k/2;

    end;

    fprintf('对%d的质数有%d种分解方法,分解如下:n',r,k);

    for i=1:k

    fprintf('%d=%d+%dn',r,p(1,i),q(1,i));

    end;

    end

    第二题用

    findstr就可以 正如一楼所说,在此不再赘述,可以参考下Help