2014年7月29日火曜日

開発環境

初めてのPerl 第6版 (Randal L. Schwartz (著)、brian d foy (著)、Tom Phoenix (著)、近藤 嘉雪 (翻訳)、オライリージャパン)の15章(スマートマッチとgiven-when)の15.6(練習問題)4.をPythonで考えてみる。

15.6(練習問題)4.

コード(BBEdit, Emacs)

sample4.py

#!/usr/bin/env python3
#-*- coding: utf-8 -*-

import re
import sys

def divisors(n):
    result = []
    for x in range(2, n // 2 + 1):
        if n % x == 0:
            result.append(x)
    return result

n = sys.argv[1]

if re.match(r'\D', n):
    print('Not a number.')
else:
    primes = divisors(int(n))
    if primes == []:
        print('その数が素数である。')
    else:
        print(' '.join(map(str, primes)))

入出力結果(Terminal, IPython)

$ ./sample4.py 2
その数が素数である。
$ ./sample4.py 3
その数が素数である。
$ ./sample4.py 4
2
$ ./sample4.py 5
その数が素数である。
$ ./sample4.py 99
3 9 11 33
$ ./sample4.py python
Not a number.
$

0 コメント:

コメントを投稿