有1997个数,它的和等于积并且只有3个数不为1,3个数都是质数,求三个数
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/02 02:59:46
![有1997个数,它的和等于积并且只有3个数不为1,3个数都是质数,求三个数](/uploads/image/z/3581087-23-7.jpg?t=%E6%9C%891997%E4%B8%AA%E6%95%B0%2C%E5%AE%83%E7%9A%84%E5%92%8C%E7%AD%89%E4%BA%8E%E7%A7%AF%E5%B9%B6%E4%B8%94%E5%8F%AA%E6%9C%893%E4%B8%AA%E6%95%B0%E4%B8%8D%E4%B8%BA1%2C3%E4%B8%AA%E6%95%B0%E9%83%BD%E6%98%AF%E8%B4%A8%E6%95%B0%2C%E6%B1%82%E4%B8%89%E4%B8%AA%E6%95%B0)
有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
收起