用matlab求满足1-1000任意三个素数满足p1+p2=p3的程序?
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/08 11:40:54
用matlab求满足1-1000任意三个素数满足p1+p2=p3的程序?
用matlab求满足1-1000任意三个素数满足p1+p2=p3的程序?
用matlab求满足1-1000任意三个素数满足p1+p2=p3的程序?
如果p1和p2是两个奇素数,那么p3就是偶数了,所以不可能也是素数.
所以p1和p2里面一定有一个偶素数,也就是唯一的一个偶素数2.
不妨固定p1=2,只要求p2和p3就好,也就是说p3-p2=2,两个奇素数之差为2.
matlab里有两个关于素数的函数,
primes(N)用来求自然数N以内所有素数.
isprime(n)用来判断n是否为素数.
我这里只用了primes().
下面是程序和运行结果
n=primes(1000); % 找出1000以内所有素数
i=find(diff(n)==2); % 找出相邻两项之差为2的项的位置
p1=2*ones(size(i)); % p1固定为2,个数和i相同
p2=n(i); % p2为相差为2的相邻两项的前一项
p3=n(i+1); % p3为两项中的后一项
p=[p1',p2',p3'] % 显示结果
p =
2 3 5
2 5 7
2 11 13
2 17 19
2 29 31
2 41 43
2 59 61
2 71 73
2 101 103
2 107 109
2 137 139
2 149 151
2 179 181
2 191 193
2 197 199
2 227 229
2 239 241
2 269 271
2 281 283
2 311 313
2 347 349
2 419 421
2 431 433
2 461 463
2 521 523
2 569 571
2 599 601
2 617 619
2 641 643
2 659 661
2 809 811
2 821 823
2 827 829
2 857 859
2 881 883