回 帖 发 新 帖 刷新版面

主题:[讨论]pascal问题一则

[color=FF0000]求出200以内的勾股数:如32+42=52 怎么做哦~在线等结果[/color]


[fly]拜托各位大哥大姐了~[em4][em4][em4][em4][/fly]

回复列表 (共10个回复)

沙发

怎么就没有人帮忙呢? 心都冷了……

顺便再提出一个问题

歌德巴赫猜想:一个充分大的偶数,可以分成两个素数的和。(变成实现 pascal)

板凳

先声明语法可能不太对,不看语法参考记不住,你自己改语法
var
  integer i, j, k;
begin
  for i:=1 to 200 do begin
    for j:=1 to 200 do begin
      k := sqrt(i*i+j*j);
      if k*k = i*i + j*j then printf(.........);
    end;
  end;
end;

3 楼

穷举......

4 楼

1.
Var i,j,k:integer;
Begin
  for i:=1 to 60 do 
    for j:=1 to 60 do 
      for k:=1 to 60 do 
        if (i*i+j*j=k*k)or(i*i+k*k=j*j)or(j*j+k*k=i*i)then 
          writeln(i:4,j:4,k:4);
End.

5 楼

2.注:是大于6的偶数
Function Judge(n:integer):boolean;
Var i:integer;
Begin
  Judge:=true;
  for i:=2 to Trunc(Sqrt(n))do 
    if n mod i=0 then begin
      Judge:=false;
      exit;
    end;
End;
Var n,i,j:integer;
Begin
  readln(n);
  for i:=1 to n-1 do
    for j:=1 to n-i do
      if (Judge(i))and(Judge(j))then begin
        writeln(i,' ',j);
        halt;
      end;
End.

6 楼

初学pascal  加群28276316

7 楼


利用基本勾股数组  m^2+n^2,m^2-n^2,2mn   {m,n互素}
function husu(a,b:integer):boolean;     {判断m,n是否互素}
  while a<>b do if a>b then a:=a-b
                        else b:=b-a;
  if a=1 then husu:=true
         else husu:=false;
   end;
var m,n,t1,t2,c:integer;
begin
  for m:=1 to 14 do       {trunc[sqrt(200)]}
    for n:=1 to trunc(sqrt(200-sqr(m))) do 
       begin if husu(m,n) then
               writeln(sqr(m)-sqr(n),2*m*n,sqr(m)+sqr(n))
               t1:=2;    
                  while sqr(t1*m)+sqr(t1*n)<=200 do
                   begin
                   writeln(sqr(t1*m)-sqr(t1*n),2t1*t1*m*n,sqr(t1*m,t1*n);
                   inc(t1);
                  end;
      end;
     end;
     end.     

8 楼

循环+判断喽! 套嵌一个

9 楼

3  4  5

10 楼

[quote]循环+判断喽! 
[/quote]

[fly]套嵌一个[/fly]
[flash]http://cctv[/flash]

我来回复

您尚未登录,请登录后再回复。点此登录或注册