---
# System prepended metadata

title: 2021年度 情報基礎B 第11回<br>アカデミック・スキルII 繰返しと関数
tags: [' lecture', ICL_B-2021]

---

---
lang: ja
tags: ICL_B-2021, lecture
---

# 2021年度 情報基礎B 第11回<br>アカデミック・スキルII 繰返しと関数
[ポータルへ戻る](https://hackmd.io/@nagae/ICL_B_2021)
<div style="text-align: center">

このページへは以下のQRコードまたはURLからアクセスできます：
![](https://i.imgur.com/dS0IEZR.png =200x)
<code style="font-size:20pt">https://hackmd.io/@nagae/ICL_B_2021-Ch11</code>
</div>

# 今回のやることリスト
1. ノートブック「Colabプログラム入門(2)」を実行しながら閲覧する
2. 課題6 「素数の個数と和」

# 1. ノートブック「Colabプログラム入門(2)」を実行しながら閲覧する
1. Classroom＞授業＞参考資料＞Colabプログラム入門(2)にアクセス
2. Colaboratory で開いて順に実行してみる．

# 2. 課題6 「素数の個数と和」
## 課題の内容
ある整数`N`が与えられた時，`N`未満の素数の個数と和を求めて表示するプログラムを作り，下記の4つの整数を`N`として与えた場合の計算結果を示しなさい:

`10, 100, 1000, 10000`

作成したプログラムは，動作が確認できるようにセルとして残すこと． 計算結果は，下記のようなテキスト・セルに整理すること．

```shell
10未満の素数     個数:x    和:xx
100未満の素数    個数:xx   和:xxx
1000未満の素数   個数:xxx  和:xxxx
10000未満の素数  個数:xxxx 和:xxxxx
```

なお，Nに`20, 200, 2000, 20000, 200000, 2000000, 20000000`を与えた場合の結果は以下の通り：

```shell
N          素数の個数   素数の和
20         8	      77
200        46	      4227
2000       303	      277050
20000      2262       21171191
200000     17984      1709600813
2000000    148933     142913828922
20000000   1270607    12272577818052
```


## 提出方法・提出期限
課題6に添付した Colab ノートブックのファイル名を
学籍番号_氏名-課題6.ipynb
とした上で，内容を編集・保存し，**「提出」ボタン**を押す．

<div style="font-weight:bold; color:red">締め切り：7月21日(水)23:59</div>

## 評価基準
### 必須項目(守られていない場合は減点)
- ファイル名，氏名，日付が適切に修正されているか．
- 適切に動作するプログラムができているか．
- 課題に提示されたケース(`N=10, 100, 1000, 10000`)について，正しい解を出力できるか．
- 計算結果を整理したテキスト・セルがあるか．
- 式や処理について十分なコメントが記載されているか．コメントは，プログラム・セル内にPythonのコメント(`#`以降に記載)として記述しても，テキストセルに記載してもよい．
### 加点要素(1): 技術の習得
- 素数判定などに**関数**を利用している
- 講義で使っていない機能(リスト，`numpy`モジュールなど)の利用
    - 十分なコメントが記載されている場合に限る
### 加点要素(2)： 創意工夫
- 指定されていない数値についての実行結果を掲載している(ただし，多くても10個程度まで)．
- 効率化のための工夫をしている(講義中に紹介したものでも可)．
- 大きな数(例えば`N=10,000,000`)に対しても**高速**に計算するための工夫をしている(例えば，**Eratosthenesのふるい**をうまく使うと，`N=10,000,000`未満の素数の個数と和を30秒以内で求められる)．
- 自らの工夫によって処理時間がどれだけ減少したかを**定量的に評価**し，その根拠を考察している(考察はテキストセルに記述すること)．