Kiểm tra từng phần tử của 1 số

Hi các bác, cho e hỏi vấn đề này. E muốn nhập 1 mảng số và kiểm tra xem số nào có tất cả các chữ số đều % 2 (vd: 24, 468…). Nếu biết chính xác số đó có mấy chữ số thì dùng ‘and’ là kiểm tra được nhưng nếu ko biết chính xác nó có bn chữ số thì làm ntn?

minInput = int(input('Min: '))
maxInput = int(input("Max: "))
results = []

for num in range(minInput, maxInput):
	strNum = str(num)
	if int((i for i in strNum) % 2 == 0: #e tính đặt 1 vòng lặp cho nó kiểm tra ở đây nhưng lỗi rồi
		results.append(str(num))

print (','.join(results))

Thanks

Thừa / thiếu mất một ) rồi kìa. :slight_smile:

3 Likes

Vốn cái hàm đấy đã sai rồi :D.
Vẫn chưa tìm ra cách nào xử lý. Bác nào pro cho e ít lời khuyên với.

Cách của mình nghe khá bần tiện, từ min tới max thì chạy từ min hoặc min+1 ( nếu min là số lẻ) tới max hoặc max-1 (nếu max là số lẻ) và mỗi bước đi 2 đơn vị
hàm kiểm tra thì đầu tiên đặt số chạy đầu tiên là x, thì lấy x%2, nếu x%2 = 1 thì x = x+2; nếu x%2 = 0 thì gắn 1 biến n =x; n = n/10, sau đó kiểm tra lại, nếu n = 0 thì in ra x.
Đây là mình hiểu đề là in ra các số có các chữ số đều chia hết cho 2 từ min tới max.
Còn nếu như kiểm tra số trong 1 mảng thì chỉ cần khúc sau thôi.

Cập nhập:

nhập min, max ở dạng string. giờ thay vì phải chia ra này nọ thì chỉ việc chạy xem chữ số của x có thuộc 0,2,4,6,8 không thôi :v

6 Likes

Theo hướng dẫn của chị thì e đã tìm ra cách giải quyết. Thanks chị

def tachSo(num):
	'Tach 1 so ra tung mang cac chu so'
	
	numSplit = []

	while (num > 0):
		splited = num % 10
		num //= 10
		numSplit.append(str(splited))

	return numSplit

def kiemTraChan(numSplit):
	for i in numSplit:
		if int(i) % 2 != 0:
			return 0

	return 1

minInput = int(input('Min: '))
maxInput = int(input("Max: "))
ketQua = []

for num in range(minInput, maxInput + 1):
	so = tachSo(num)
	if kiemTraChan(so) == 1:
		ketQua.append(str(num))

	else:
		pass

print (','.join(ketQua))
3 Likes

Chúc mừng bạn đã làm ra được, mình không biết python nên chịu thôi :laughing:. Giúp được người khác cũng thấy vui. Và mình không nghĩ bạn học lớp 10 trở xuống đâu :unamused: Con gái không thích bị kêu già đi :unamused:

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?