課題1 次の方針に従って単純な素数判定プログラムを完成せよ。 (塗りつぶした部分 ## を復元せよ。素数 : prime number ) (1) "Input a number >3 num = ? " と表示して num に整数を入力 (2) div に 3,5,7,・・・を代入(偶数の場合は後で処理) num を div で割った余りが0になれば num は合成数(素数でない)で 約数は div である。 (3) num が奇数で div*div>num となるまでに余りが0にならなければ num は素数である (4) num が偶数ならば num は合成数で約数は 2 である。 (5) num≦3 のときは "Bad Data ! " と表示 (6) num>3 のとき num が素数ならば " Prime !" と表示 num が合成数なら約数を表示 (7) 終了 ※ 改行,インデントについては演習時に指示する。 int ###,###; char chk; printf("Input a number >3 num = ? "); #####("%d" , ####); div=1; while(1){ div+=2; if(div*div>###) { chk=###; break;} if(num%div==0) { chk=###; #####;} } if(num%2==0) { #######; div=#; } if(num<=3) chk='N'; if(chk=='P')printf("Prime ! \n"); if(chk=='D')printf("Divided by %d\n",div); if(chk=='N')printf("Bad Data ! \n"); 課題2 整数a(0)を入力し次の規則に従って生成される数列a(0),a(1),a(2),・・・ を表示するプログラムを作れ。 (1) a(n) が偶数のとき a(n+1)=a(n)/2 (2) a(n) が奇数のとき a(n+1)=3*a(n)+1 (3) a(n)=1 のとき 終了 ※ a(0)≦0 のときは終了条件 a(n)=1 は無効で無限ル−プになりうる。 回避方法は各自考えよ。 例 a(0)=3 のときは 3 10 5 16 8 4 2 1 a(0)=7 のときは 7 22 11 34 17 52 26 13 40 20 10 5 ・・・