必修課題 課題6-1で指示されるプログラムを作成し, そのプログラムと実行結果を提出する.
レポートは,作成したCのソースファイル(.c)に実行結果をコメントとして貼り付け, その電子ファイルをCLEで提出する.
以下のアルゴリズムに従い,入力したデータを,大きさの順に
配列の中身を並び替えるプログラムを作成せよ.
なお,以下の例では 配列の要素数を5とし,5つのデータの並び替えを行って
いるが, 要素数をマクロ定義することで,
データ数が変わってもマクロ定義を変えるだけで対応できるようにすること.
素数を小さいものから順に1000個求めて配列に格納し,出力するプログラムを作成せよ.
ただし,ある整数が素数かどうか判定するにあたって,
割り算の回数がなるべく少なくなるように工夫せよ.
なお,求める素数の個数はマクロ定義することで,
より多く(あるいは少なく)素数を求めたい場合でもマクロ定義を変えるだけで
対応できるようにすること.
また,求める素数の個数はとても大きくなりうる.例えば「10000以下の正の整数に
ついて素数かどうか調べる」ような,汎用性に問題が生じるような条件を設けないこと.
ある正の整数nが素数であるか判定するには,1から√nまでの素数で割り切れるか
どうか確かめればよい.
例えば99が素数であるか判定するには,1から9(√99 = 9.9...)までの
素数である2, 3, 5, 7で割り切れるかどうか確かめればよい(小さいものから
順に素数をもれなく求めれば,nが素数であるか判定する時には,nより小さい
素数はすべて配列に格納されている).しかも,3で割り切れた時点で99は素数
ではないことがわかるので,5, 7で割り切れるかどうかは試さなくてもよい.