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 等。
展开
 我来答
wwldabhd
2012-08-15 · TA获得超过570个赞
知道答主
回答量:113
采纳率:0%
帮助的人:29.4万
展开全部
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循环计算,输出
111ZJKZJK
2012-08-14
知道答主
回答量:53
采纳率:0%
帮助的人:12万
展开全部
第一题就是while3重,判断。
然后判断它是不是素数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式