# Vòng lặp
## 1. Vòng lặp là gì?
- Vòng lặp là một hành động được lặp đi lặp lại.
## 2. Vòng lặp trong lập trình
- Vòng lặp trong lập trình là đơn giản là lặp đi lặp lại một đoạn code
- Có hai loại vòng chính tỏng lập trình là: `for..do` và `while..do`
## 3. Vòng lặp `for` trong Python
### 3.1. Sử dụng vòng lặp
```python
for biến_lặp in range(giá_trị_đầu, giá_trị_cuối):
```
### 3.2. Cách dùng vòng lặp
- VD_1: Vòng lặp trong Python được sử dụng như sau
```python
# Chương trình cho i chạy từ 1 -> 9
# và in giá trị của i
for i in range(1, 10):
print(i)
```
- Output:
```
1
2
3
4
5
7
8
9
```
- Qua VD_1, ta có thể thấy i chỉ chạy từ `giá_trị_đầu` đến `giá_trị_cuối - 1` nên khi sử dụng, người ta thường thêm `1` đơn vị vào `giá_trị_cuối`. VD:
```python
for i in range(1, 10+1):
print(i)
```
- Output:
```
1
2
3
4
5
6
7
8
9
10
```
## 4. Vòng lặp `while` trong Python
### 4.1. Sử dụng
```python
while điều_kiện_để_tiếp_tục_vòng_lặp:
câu_lệnh
```
### 4.2. Cách dùng
- VD_2: Viết chương trình in ra số x nguyên dương nhỏ nhất sao cho $2^x \ge N$ với $N$ được nhập từ bàn phím
```python
n = int(input())
x = 0
while 2 ** x < n:
x += 1
print(x)
```
- N = 12, Output:
```
4
```
- Giải thích: $2^4 = 16 > 12$.
## 5. Bài tập
**Bài 1.** Cho số nguyên $N$ nhập từ bàn phím. In các giá trị từ $1 \rightarrow N$. VD: $N = 6$, in ra:
```
1
2
3
4
5
6
```
**Bài 2.** Cho số nguyên $N$ nhập từ bàn phím. In các giá trị chẵn từ $1 \rightarrow N$. VD: $N = 10$, in ra:
```
2
4
6
8
10
```
**Bài 3.** Viết chương trình thực hiện các bước sau
- 1. Nhập $N$ từ bàn phím
- 2. Gán `n = n // 2`
- 3. Nếu n > 0 thì quay lại bước 2, ngược lại tiếp tục
- 4. In ra số lần bước 2 được lặp lại
- VD: $N = 100$, output:
```
7
```
**Bài 4.** Phân tích N thành thừa số nguyên tố
- $N = 120$
- Output
```
2 2 2 3 5
```
- Gợi ý: Duyệt `i` từ $1$ đến $N$ nếu $N$ vẫn chia hết cho `i` thì in `i` in `i` ra màn hình
- Muốn lệnh `print` không bị xuống dòng `print(i, end=kí_tự_cuối)`, kí_tự_cuối là kí tự mình muốn thêm vào sau khi in `i`. Mặc định kí_tự_cuối là `'\n'`. kí_tự_cuối có thể là rỗng: `''`.