用matlab怎样求前n个素数,以及1~10000之间素数的个数之和!
素数就是只能被1和本身整除的整数。j依次为1到10000之内的整数(每次循环+1),i为从2到j-1的依次+1的整数,判断j能否被i整除,若都不能则j即为素数,记下统计数,并判断统计数是否小于n,如果大于n则结束循环。否则将素数相加。
求解前n个素数代码:
%% 求解前n个素数
n = 50;
ii = 0; % 素数个数初始值
X = [];
x = 2;
while ii < 50
if isprime(x)
X = [X x];
ii = ii+1;
end
x = x+1;
end
disp(['前' num2str(n) '个素数为'])
disp(X)
结果:
前50个素数为
列 1 至 24
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89
列 25 至 48
97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223
列 49 至 50
227 229
求解前10000素数之和代码:
%% 前10000素数之和
N = 1:10000;
X = N(isprime(N));
S = sum(N) % 素数之和
结果:
S =
50005000