求一道matlaB题答案啊.急用.
求一道matlaB题答案啊.急用.
编写程序证明任何一个大于等于6的偶数n总可以分解成两个奇素数的和.要求:
(1) 对输入数字n做出合理性判断,对不合理情况输出错误信息.
(2) 如果n=136,总共有多少种分解方法?
(3) 列出n=136时的所有分解结果.
统计字符串S中“a”、“c”、“ac”、“atc”的个数
S=[cgggcggatttaggccgacggggacccgggattcgggacccgaggaaattcccggattaaggtttagcttcccgggatttagggcccggatggctgggaccctttagctagctactttagctatttttagtagctagccagcctttaaggctagctttagctagcattgttctttattgggacccaagttcgacttttacgatttagttttgaccgt.cgctaagcagctcaagctcagtcagtcacgtttgccaagtcagtaatttgccaaagttaaccgttagctgacgctgaacgctaaacagtattagctgatgactcgtatccttagatttcagttactatatttgacttacagtctttgagatttcccttacgattttgacttaaaatttagacgttagggcttatcagttatggattaatttagcttattttcgatacagtagctcagtccaagaacgatgtttaccgtaacgtqacgtaccgtacgctaccgtaccctttagctagctactttagctatttttagtagctagccagcctttaaggctagctttagctagcattgttctttattgggacccaagttcgacttttacgatttagttttgaccgtcgctaagcagctcaagctcagtcagtcacgtttgccaagtcagtaatttgccaaagttaaccgttagct];
第一题答案
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+%d\n',r,p(1,i),q(1,i));
end;
end
第二题用
findstr就可以 正如一楼所说,在此不再赘述,可以参考下Help