千葉大学 理学研究科 基盤理学専攻 数学・情報数理学コース 2014年8月実施 専門 A5
标签:
Author
祭音Myyura (co-authored with GPT 6 Astra)
Description
次の Pascal プログラムを考える。
program test(input, output);
const MAX = 500;
var a: array[1..MAX] of integer;
n, i, j: integer;
begin
readln(n);
for i := 1 to n do a[i] := 1;
for i := 2 to n div 2 do begin
j := 2*i;
while j <= n do begin a[j] := a[j]+i; j := j+i end
end;
for i := 1 to n do
if (i <= a[i]) and (a[i] <= n) then
if a[a[i]] = i then writeln(i, a[i])
end.
(1) 入力が のときの出力を記せ(答えのみ)。
(2) のとき、どのような出力になるか理由とともに述べよ。
题目描述
考虑上面的 Pascal 程序。
(1) 输入 时输出什么?只写答案。
(2) 输入任意 时,会输出哪些整数对?说明理由。
Kai
(1)
1 1
6 6
(2)
出力は次の組を第 成分の昇順に並べたものである。
- 常に 。
- 以下の完全数 に対する 。
- を満たす友愛数の組 。
実際、 に対して、初期値の に加えて 以上の真の約数を一度ずつ加算するので、最初の二重ループ終了後には
出力条件は および 。 なら完全数、 なら友愛数の小さい方を先にした組であり、重複はない。 は初期値によって特別に出力される。
この範囲の具体的な候補は であり、第 成分が 以下のものが出力される。