import math
def la_so_chinh_phuong(n):
"""
Kiểm tra xem một số có phải là số chính phương hay không.
"""
if n < 0:
return False
can_bac_hai = int(math.sqrt(n))
return can_bac_hai * can_bac_hai == n
def main():
# Nhập số phần tử và đảm bảo n là số nguyên dương
while True:
try:
n = int(input("Nhập số phần tử của danh sách (n > 0): "))
if n > 0:
break
else:
print("Số phần tử phải lớn hơn 0. Hãy nhập lại.")
except ValueError:
print("Vui lòng nhập một số nguyên.")
# Khai báo danh sách
numbers = []
# Nhập giá trị cho các phần tử của danh sách
for i in range(n):
while True:
try:
value = int(input(f"Nhập giá trị cho phần tử thứ {i + 1}: "))
break
except ValueError:
print("Vui lòng chỉ nhập số nguyên.")
numbers.append(value)
# In danh sách ra màn hình
print("Danh sách các phần tử:")
for num in numbers:
print(num)
# Sắp xếp danh sách theo thứ tự giảm dần
numbers.sort(reverse=True)
# In danh sách đã sắp xếp ra màn hình
print("Danh sách sau khi được sắp xếp giảm dần:", numbers)
# Đếm số lượng số chính phương có trong danh sách
dem_so_lu for num in numbers if la_so_chinh_phuong(num))
# In số lượng số chính phương ra màn hình
print("Số lượng số chính phương trong danh sách:", dem_so_luong_so_chinh_phuong)
if __name__ == "__main__":
main()