プログラミング入門I 実習課題 2019.01.21

Back to text page


実習課題

  1. 約数探索

    100以上200以下の整数を乱数により2つ発生させ,その数自身も含めてそれらの間の数の約数を以下のように表示するプログラムを作成せよ.

    Divisors between 138 and 145
    138: 1 2 3 6 23 46 69 138 
    139: 1 139 
    140: 1 2 4 5 7 10 14 20 28 35 70 140 
    141: 1 3 47 141 
    142: 1 2 71 142 
    143: 1 11 13 143 
    144: 1 2 3 4 6 8 9 12 16 18 24 36 48 72 144 
    145: 1 5 29 145 
    

    解答例

  2. 素数探索

    4桁の正の整数で一番小さい素数を見つけるプログラムを作成せよ.表示は以下のようにすること.

    The minimum prime number with 4 digits: 1***
    

    いろんなやり方が考えられますが, break 文を使っても構いません.

    解答例

  3. 完全数探索

    自分自身を除く約数の和が自分自身に一致する数を「完全数」と呼ぶ.完全数のうち4桁のものを探すプログラムを作成せよ.

    Perfect numbers with 4 digits: ****
    

    例えば,6は約数に1,2,3,6の4つを持ちますが,自分自身すなわち6を除く約数の和は1+2+3=6となり,自分自身と一致するので完全数です.28などもそうです.

    解答例

  4. 約数の個数

    3桁の正の整数で最多の約数を持つ数を見つけ,その約数を表示するプログラムを作成せよ.

    *** has ** divisors.
    1 2 3 4 5 6 7 8 10 12 14 15 ... (以下略)
    

    解答例

  5. ドーナツ?

    以下のようなドーナツ型の図形の描画を2重の for 文を用いて行うプログラムを作成せよ.

                                            
                                            
                  **************            
              **********************        
            **************************      
          ******************************    
          ******************************    
        **********************************  
        **************      **************  
        ************          ************  
        ************          ************  
        ************          ************  
        **************      **************  
        **********************************  
          ******************************    
          ******************************    
            **************************      
              **********************        
                  **************            
                                            
                                            
    

    円の式と不等号で作成してみました.21行×21列で作ったものです.

    解答例

  6. %c の利用

    アルファベット小文字を以下のように表示するプログラムを作成せよ.なお,小文字の a も文字コードは97である.

    abcdefghij
    bcdefghija
    cdefghijab
    defghijabc
    efghijabcd
    fghijabcde
    ghijabcdef
    hijabcdefg
    ijabcdefgh
    jabcdefghi
    

    鍵は剰余です.

    解答例

  7. 前問の変形

    先ほどのプログラムを次のような表示になるように変えよ.
    abcdefghij
     bcdefghija
      cdefghijab
       defghijabc
        efghijabcd
         fghijabcde
          ghijabcdef
           hijabcdefg
            ijabcdefgh
             jabcdefghi
    

    先日行った内側の for 文が2つになるパターンです.

    解答例

  8. 平均値

    乱数の発生の精度を確認するために平均値を取ることを行う.サイコロを10回振って平均値を求める作業を50回行い,累積の平均値が10回毎の平均値がどのように3.5に収束するかを確認するプログラムを作成せよ.

     1: 2 3 2 6 2 5 3 1 1 3 -- 2.8 --> 2.80
     2: 5 5 4 2 5 2 6 2 5 2 -- 3.8 --> 3.30
     3: 2 4 2 5 4 3 2 6 6 5 -- 3.9 --> 3.50
     4: 1 1 1 6 5 3 4 1 1 3 -- 2.6 --> 3.28
     5: 1 3 5 2 4 3 2 2 5 6 -- 3.3 --> 3.28
     6: 3 4 1 2 2 4 4 1 1 4 -- 2.6 --> 3.17
     7: 3 1 2 4 1 4 4 2 5 4 -- 3.0 --> 3.14
     8: 2 3 6 5 3 2 1 4 3 3 -- 3.2 --> 3.15
     9: 3 3 1 1 5 6 4 2 1 4 -- 3.0 --> 3.13
    10: 3 3 2 3 4 6 6 5 6 2 -- 4.0 --> 3.22
    11: 6 1 5 4 5 5 5 4 6 5 -- 4.6 --> 3.35
    12: 6 6 1 4 6 3 4 3 5 2 -- 4.0 --> 3.40
    13: 6 5 4 5 1 6 5 1 2 4 -- 3.9 --> 3.44
    14: 2 2 2 4 5 5 2 1 2 1 -- 2.6 --> 3.38
    15: 5 5 4 3 3 3 6 6 5 2 -- 4.2 --> 3.43
    16: 1 2 6 2 1 1 5 3 1 1 -- 2.3 --> 3.36
    17: 4 6 6 3 4 4 1 3 4 6 -- 4.1 --> 3.41
    18: 2 6 3 5 2 5 2 5 2 6 -- 3.8 --> 3.43
    19: 6 6 6 4 5 4 4 4 6 2 -- 4.7 --> 3.49
    20: 2 1 1 1 3 4 2 2 5 5 -- 2.6 --> 3.45
    21: 1 6 2 3 4 1 5 5 6 4 -- 3.7 --> 3.46
    22: 3 3 3 2 6 6 3 1 1 6 -- 3.4 --> 3.46
    23: 2 2 6 1 6 6 2 1 1 6 -- 3.3 --> 3.45
    24: 3 6 5 4 2 3 4 5 5 1 -- 3.8 --> 3.47
    25: 2 1 4 3 6 1 2 2 2 6 -- 2.9 --> 3.44
    26: 1 3 5 4 1 4 4 3 2 4 -- 3.1 --> 3.43
    27: 2 2 3 1 5 3 1 6 5 5 -- 3.3 --> 3.43
    28: 5 4 6 6 6 5 6 5 5 1 -- 4.9 --> 3.48
    29: 2 5 2 6 3 2 1 6 2 2 -- 3.1 --> 3.47
    30: 1 4 3 2 2 5 2 2 3 6 -- 3.0 --> 3.45
    31: 4 1 3 3 6 1 6 3 3 4 -- 3.4 --> 3.45
    32: 4 5 6 3 4 2 2 3 5 4 -- 3.8 --> 3.46
    33: 4 6 1 5 1 6 3 6 1 3 -- 3.6 --> 3.46
    34: 5 4 3 5 5 6 5 2 3 6 -- 4.4 --> 3.49
    35: 5 4 4 2 6 5 4 5 1 6 -- 4.2 --> 3.51
    36: 2 3 5 6 5 3 5 5 2 3 -- 3.9 --> 3.52
    37: 2 4 5 2 3 3 2 5 2 2 -- 3.0 --> 3.51
    38: 4 6 5 5 1 2 2 2 6 2 -- 3.5 --> 3.51
    39: 2 2 2 4 5 6 5 4 5 4 -- 3.9 --> 3.52
    40: 4 6 2 2 5 4 2 6 6 3 -- 4.0 --> 3.53
    41: 1 4 6 3 2 5 4 3 4 4 -- 3.6 --> 3.53
    42: 3 5 3 2 1 5 6 5 6 4 -- 4.0 --> 3.54
    43: 2 4 1 1 3 5 2 5 3 2 -- 2.8 --> 3.53
    44: 5 1 5 3 4 4 1 1 5 4 -- 3.3 --> 3.52
    45: 2 5 1 2 6 5 1 3 3 6 -- 3.4 --> 3.52
    46: 6 2 3 4 1 4 1 2 2 3 -- 2.8 --> 3.50
    47: 1 4 1 3 6 4 1 4 3 3 -- 3.0 --> 3.49
    48: 2 4 1 6 6 4 2 4 1 2 -- 3.2 --> 3.49
    49: 3 4 3 4 6 1 1 6 3 2 -- 3.3 --> 3.48
    50: 6 3 3 6 6 3 2 4 6 4 -- 4.3 --> 3.50
    

    各回の和を保存する変数と,それを積算する変数と2つ必要です.また,実際にほとんど平均値が変化しなくなる(収束する)には500回以上の試行が必要になります.

    解答例


Back to text page