3个pascal问题,望解答! 30
1输入自然数n,求前n个合数(非素数),其素因子仅有2,3,或5。2任何大于2的自然数都可以写成不超过四个平方数之和。如:8=22+22;14=12+22+32由键盘输入...
1 输入自然数n,求前n个合数(非素数),其素因子仅有2,3,或5。
2 任何大于2的自然数都可以写成不超过四个平方数之和。如:8=22+22;14=12+22+32
由键盘输入自然数N(2 < N < 2000),输出其不超过四个平方数之和的表示式。
3 哥德巴赫猜想的扩展:任何一个大于7的奇数总可以分解为三个素数之和。编写程序求7—2000以内所有奇数的分解形式(只需一种分解)。例如:7=2+2+3 ,11=3+3+5, 19=3+3+13 等。 展开
2 任何大于2的自然数都可以写成不超过四个平方数之和。如:8=22+22;14=12+22+32
由键盘输入自然数N(2 < N < 2000),输出其不超过四个平方数之和的表示式。
3 哥德巴赫猜想的扩展:任何一个大于7的奇数总可以分解为三个素数之和。编写程序求7—2000以内所有奇数的分解形式(只需一种分解)。例如:7=2+2+3 ,11=3+3+5, 19=3+3+13 等。 展开
2个回答
展开全部
1.这个应该用过程
procedure xxx(n:integer);
i,t:integer;
begin
for i:=1 to n do
begin
t:=i;
while (t mod 2)=0 do t:=t div 2;
while (t mod 3)=0 do t:=t div 3;
while (t mod 5)=0 do t:=t div 5;
if t=1 then writeln(i);
end;
如果要把答案存在数组里,就这样:
procedure xxx(n:integer);
i,t,k:integer;
begin
k:=0;
for i:=1 to n do
begin
t:=i;
while (t mod 2)=0 do t:=t div 2;
while (t mod 3)=0 do t:=t div 3;
while (t mod 5)=0 do t:=t div 5;
if t=1 then begin K:=k+1;a[k]:=i;end;
end;
2. 看不懂,为什么8=22+22??
3.利用子程序,先首先枚举出7-2000算出以内所有单数,再筛去可被整除的数,再用
while循环计算,输出
procedure xxx(n:integer);
i,t:integer;
begin
for i:=1 to n do
begin
t:=i;
while (t mod 2)=0 do t:=t div 2;
while (t mod 3)=0 do t:=t div 3;
while (t mod 5)=0 do t:=t div 5;
if t=1 then writeln(i);
end;
如果要把答案存在数组里,就这样:
procedure xxx(n:integer);
i,t,k:integer;
begin
k:=0;
for i:=1 to n do
begin
t:=i;
while (t mod 2)=0 do t:=t div 2;
while (t mod 3)=0 do t:=t div 3;
while (t mod 5)=0 do t:=t div 5;
if t=1 then begin K:=k+1;a[k]:=i;end;
end;
2. 看不懂,为什么8=22+22??
3.利用子程序,先首先枚举出7-2000算出以内所有单数,再筛去可被整除的数,再用
while循环计算,输出
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询