2001 年度「計算機基礎論3B」 2001-11-27

思いつくままに書いていますので、 各人の好みに合ったものに取り組んでください。 全部やってみる必要はないでしょう。

関数を書く練習がまだの人は、それをやりましょう。

演習(の一例)

浮動小数点数の整数乗を計算する関数

教科書 1.7 の関数 int power(int base, int n) を改造することで、 浮動小数点数の非負整数乗を計算する double power(double base, int n) を書け。

それをさらに改造し、負の整数乗も計算できるようにせよ。

素因数分解に関連したプログラム

2 以上の自然数 n に対し n の最小の素因数を返す関数を書け。 C言語では ab で割った余りは a % b とするのだった。 「小さい素数から順に割ってみる」と考えるとむずかしい。 計算に余分な時間がかかるが、「2 以上の自然数で順に割ってみる」とすればよい。 return は関数の途中に置いてもよいことにも注意。

上で書いた関数を利用して、2 から始めて適当なところまで、 自然数とその最小の素因数を並べて出力するプログラムを書け。 同様にして、 2 から始めて適当なところまでの素数(のみ)を出力するプログラムを書け。

同様にして、 2 以上の自然数を引数に与えるとそれを素因数分解して印字する関数を書け。 例えば引数を 52 とすると 2*2*13 と出力するようにする。


岩瀬順一