def is_leap(year):
# 檢查是否為閏年
return (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
def is_prime(n):
# 檢查 n 是否為質數
if n < 2:
return False
if n % 2 == 0:
return n == 2
for i in range(3, int(n**0.5) + 1, 2):
if n % i == 0:
return False
return True
# 定義每個月的天數
def days_in_month(year, month):
if month in [4, 6, 9, 11]:
return 30
elif month == 2:
return 29 if is_leap(year) else 28
else:
return 31
prime_dates = []
# 範圍是2000年到2999年
for year in range(2000, 3000):
for month in range(1, 13):
for day in range(1, days_in_month(year, month) + 1):
# 將日期格式化為 YYYYMMDD
date_number = int(f"{year}{month:02d}{day:02d}")
# 檢查是否為質數
if is_prime(date_number):
prime_dates.append(date_number)
# 列出所有質數日並輸出總數
for prime_date in prime_dates:
print(prime_date)
print("質數日總數:", len(prime_dates))
# 執行結果:
# .
# .
# .
# 29990119
# 29990123
# 29990131
# 29990327
# 29990503
# 29990603
# 29990621
# 29990707
# 29990713
# 29990717
# 29990801
# 29990903
# 29990927
# 29990929
# 29991001
# 29991019
# 29991109
# 29991113
# 29991119
# 29991211
# 質數日總數: 21934
沒有留言:
張貼留言