掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ピタゴラス数を列挙するには? (ID:16902)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
出遅れ・・ こんなんでどう? ※mathをusese節に追加すること procedure TForm1.Button1Click(Sender: TObject); var count :Integer; Bf:AnsiString; a,b :Integer; c :Double; begin { 100以下なら時間もたいしてかららないので、 しらみつぶしに挙げる方がラク。 最大値が増えると指数的に計算量が増えるので注意 } count := 0; for a:=3 to 99 do begin for b:=a+1 to 100 do begin c := sqrt(a*a + b*b); if abs(c - Trunc(c + 0.5)) < MinDouble then //sqrt(a^2 + b^2) が整数かどうか荒くチェック begin if ( Trunc(c + 0.5)*Trunc(c + 0.5) = a*a + b*b) then //再チェック begin Bf := Format('a:%3d, b:%3d, c;%3d',[a,b,Trunc(c+0.5)]); Memo1.Lines.add(Bf); Inc(count); Bf := ''; end; end; end; end; Bf := Format('count:%d',[count]); Memo1.Lines.add(Bf); end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.