# BlueCyber
Câu 3 (2đ):
```py=
def so_cach(N):
if N <= 1:
return N
# Khởi tạo mảng dp để lưu số cách lát cho từng kích thước
dp = [0] * (N + 1)
# Trường hợp cơ sở
dp[1] = 1
dp[2] = 2
# Tính dp[i] cho i từ 3 đến N
for i in range(3, N + 1):
dp[i] = dp[i - 1] + dp[i - 2]
return dp[N]
# Nhập giá trị của N từ người dùng
N = int(input())
if 1 <= N <= 100:
cach = so_cach(N)
print(cach)
else:
print("-1")
```
Câu 2 (5đ):
```py=
num = int(input())
uoc = []
for i in range(1,num//2+1):# Tìm ước
if num % i == 0:
uoc.append(i)
tong = sum(uoc)
if tong > num: # So sánh
print('yes')
else:
print('no')
```
Câu 1 (3đ):
```py=
s = input()
t = input()
index = []
len_s = len(s)
for i in range(len(t)-len_s+1):
if s == t[i:i+len_s]:
index.append(i+1)
if len(index) <= 0:
print('-1')
else:
print(' '.join(map(str,index)))
```