#!/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

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 搗蛋鬼 的頭像
    搗蛋鬼

    別搗蛋

    搗蛋鬼 發表在 痞客邦 留言(0) 人氣()