import math

def is_prime(num):
    if num <= 1:
        return False
    if num <= 3:
        return True
    if num % 2 == 0 or num % 3 == 0:
        return False
    i = 5
    while i * i <= num:
        if num % i == 0 or num % (i + 2) == 0:
            return False
        i += 6
    return True

def generate_primes(start, end):
    primes = []
    for num in range(start, end + 1):
        if is_prime(num):
            primes.append(num)
    return primes

y=2024 #year

start_range1=y*10000+101 #20240101
end_range1=y*10000+930 #20240930

start_range2=y*1000+101 #2024101
end_range2=y*1000+930 #2024930

start_range3=y*10000+1001 #20241001
end_range3=y*10000+1231 #20241231

start_range4=y*100+11 #202411
end_range4=y*100+99 #202499

prime_numbers1 = generate_primes(start_range1, end_range1)
prime_numbers2 = generate_primes(start_range2, end_range2)
prime_numbers3 = generate_primes(start_range3, end_range3)
prime_numbers4 = generate_primes(start_range4, end_range4)
numbers = [1000*(math.floor(num / 10000))+num % 1000 for num in prime_numbers1]

def intersection(prime_numbers2, numbers):
    lst3 = [num for num in prime_numbers2 if num in numbers]
    return lst3

primes=intersection(prime_numbers2, numbers)

arrayce1=[230, 231, 431, 631, 831, 931] #exceptions for the Gregorian Calendar
arraybs1=[631, 731, 831, 930, 931] #Exceptions for the Vikram Samvat calendar (2081)
arrayce2=[1131]
arraybs2=[1031, 1130, 1131]

exceptions=[y*1000+x for x in arrayce1]+[y*10000+x for x in arrayce2]  #Choose arrayce1 and arrayce2 for Gregorian and arraybs1 and arraybs2 for Vikram Samvat

fprimes1 = [num for num in primes if num % 100 <= 31 and num not in exceptions]
fprimes2= [10000*(math.floor(num / 1000))+num % 1000 for num in fprimes1]

a=[num for num in prime_numbers1 if num % 100 <= 31 and num not in exceptions]
b=[num for num in prime_numbers2 if num % 100 <= 31 and num not in exceptions]
c=[num for num in prime_numbers3 if num % 100 <= 31 and num not in exceptions]

joint = ', '.join([f"({item1}, {item2})" for item1, item2 in zip(fprimes1, fprimes2 )])
print(f"{len(fprimes1)} Prime date pairs ({y}MDD, {y}MMDD):", f"[{joint}]")
#print(f"Prime dates ({y}MMDD):", a)
print(f"{len(b)} Prime dates ({y}MDD):", b)
#print(f"Prime dates ({y}MMDD):", c)
print(f"{len(a+c)} Prime dates ({y}MMDD):", a+c)
print(f"{len(prime_numbers4)} Prime dates ({y}MD):", prime_numbers4)

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: