有1997个数,它的和等于积并且只有3个数不为1,3个数都是质数,求三个数
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 18:30:10
有1997个数,它的和等于积并且只有3个数不为1,3个数都是质数,求三个数
有1997个数,它的和等于积并且只有3个数不为1,3个数都是质数,求三个数
有1997个数,它的和等于积并且只有3个数不为1,3个数都是质数,求三个数
3.5.143你看对不,1994+3+5+143=15*143=2002
设三个质数分别是a,b,c
有abc=a+b+c+1994
不妨设a≥b≥c
a^3
≥a+b+c+1994
≥9+1994
所以a≥13
abc≤3a+1994
bc≤3+1994/a
≤3+1994/13
bc≤156
枚举b,c算得a再验证合法性,得到的解有:
a=61,b=17,c=2
a=59,b=7,c=5
这三个数是61,17,2和59,7,5
编程做吧...
笔算没思路的说...
const
max=1000;
var
i,j,k:longint;
a:array[1..max] of boolean;
b:array[0..max] of longint;
begin
for i:=2 to max do a[i]:=true;
for i:=2 to max ...
全部展开
const
max=1000;
var
i,j,k:longint;
a:array[1..max] of boolean;
b:array[0..max] of longint;
begin
for i:=2 to max do a[i]:=true;
for i:=2 to max do
if a[i] then
begin
for j:=2 to trunc(max div i) do
a[j*i]:=false;
end;
for i:=1 to max do
if a[i] then
begin
inc(b[0]);
b[b[0]]:=i;
end;
for i:=1 to b[0] do
for j:=i+1 to b[0] do
for k:=j+1 to b[0] do
if 1994+b[i]+b[j]+b[k]=b[i]*b[j]*b[k] then
writeln(b[i],' ',b[j],' ',b[k]);
end.
2 17 61
5 7 59
收起