#!/usr/bin/perl # 輸入 : 正整數 n # 輸出 : 小於 n 之完全數 sub perfect { my $n = shift; my ($c, $i); $c = 1; for $i (1..$n) { if (is_perfect($i)==1) { printf "%d %d\n", $c, $i; $c++; } } } # 輸入 : 正整數 n # 輸出 : 小於 n 之盈數 sub abundant { my $n = shift; my ($c, $i); $c = 1; for $i (1..$n) { if (is_perfect($i)==2) { printf "%d %d\n", $c, $i; $c++; } } } # 輸入 : 正整數 n # 輸出 : 小於 n 之虧數 sub deficient { my $n = shift; my ($c, $i); $c = 1; for $i (1..$n) { if (is_perfect($i)==3) { printf "%d %d\n", $c, $i; $c++; } } }
# 判斷完全數、盈數、虧數 # 輸入 : 正整數 n # 輸出 : 完全數傳回 1, 盈數傳回 2, 虧數傳回 3, 錯誤傳回 0 sub is_perfect { my $n = shift; my ($i, $sum); return 0 if ($n$n); return 3 if ($sum
全站熱搜
留言列表