用matlab求100-1000内的素数,并求所有素数的和及平均值,下面的程序不是很懂,希望大神能够指点。

%求100-1000内的素数,并求所有素数的和及平均值n=0; for m=100:1000 flag=1; j=m-1; i=2; while i<=j & flag if rem(m,i)==0 flag=0; end i=i+1; end if flag n=n+1; prime(n)=m; end end k=find(prime>100&prime<1000);total=sum(prime)average=total/length(k)

flag是个标志位,用来判断当前的m是不是质数,while语句穷举了m是否能被2到m-1整除也就是能否被i到j整除,当找到有能整除的情况直接跳出while,下面的if语句也通不过,直接就来到for循环,判断下一个数是否为素数。当执行完while都没有找到整除,那么此时flag不会被置为0,if语句通过,把素数保存在一个矩阵prime中,打印结果,n是用来计数的告诉你这是第几个素数。
温馨提示:答案为网友推荐,仅供参考
相似回答