Write a python function to calcuate the easter date using Gauss's Algorithm


Topic: Write a python function to calcuate the easter date using Gauss's Algorithm

Solution

 def gaussEaster(Y):
    A = Y % 19
    B = Y % 4
    C = Y % 7
    P = int(Y / 100)
    Q = int((13 + 8 * P) / 25)
    M = (15 - Q + P - P // 4) % 30
    N = (4 + P - P // 4) % 7
    D = (19 * A + M) % 30
    E = (2 * B + 4 * C + 6 * D + N) % 7
    days = (22 + D + E)
    if ((D == 29) and (E == 6)):
        print(Y, "-04-19")
        return
    elif ((D == 28) and (E == 6)):
        print(Y, "-04-18")
        return
    else:
        if (days > 31):
            print(Y, "-04-", (days - 31))
            return
        else:
            print(Y, "-03-", days)
            return
 #write a python function to print the pascal's triangle
 
 def printPascal(n):  
  
    for line in range(1, n + 1):  
        C = 1; 
        for i in range(1, line + 1):   
            print(C, end = " ");  
            C = int(C * (line - i) / i);  
        print("");
 #write a python function to print Hosoya's triangle of height 'n'
 def printHosoya(n): 
    dp = [[0 for i in range(n)]  
             for i in range(n)] 
               
    dp[0][0] = dp[1][0] = dp[1][1] = 1
    for i in range(2, n): 
        for j in range(n):  
            if (i > j): 
                dp[i][j] = (dp[i - 1][j] + 
                            dp[i - 2][j]) 
            else: 
                dp[i][j] = (dp[i - 1][j - 1] +
                            dp[i - 2][j - 2]) 
    for i in range(n): 
        for j in range(i + 1): 
            print(dp[i][j], end = ' ') 
        print() 
  
  #write a python function to print Floyd's triangle
  
  def loydTriangle(n):   
    val = 1
    for i in range(1, n + 1): 
  
        for j in range(1, i + 1): 
            print(val, end = " ") 
            val += 1       
        print("") 
        
 #write a python function to print reverese Floyd's triangle
 
 def printReverseFloyd(n): 
  
    curr_val = int(n*(n + 1)/2) 
    for i in range(n + 1, 1, -1): 
        for j in range(i, 1, -1): 
            print(curr_val, end ="  ") 
            curr_val -= 1       
        print("") 
        
 # write a python function to print fibonacci series in the reverse order
  
 def reverseFibonacci(n): 
   
    a = [0] * n  
    a[0] = 0 
    a[1] = 1   
    for i in range(2, n):   
        a[i] = a[i - 2] + a[i - 1]  
    for i in range(n - 1, -1 , -1):    
        print(a[i],end=" ")  
        
 # write a python function to print Leibniz Harmonic triangle
 
def LeibnizHarmonicTriangle(n): 
    C = [[0 for x in range(n + 1)]  
            for y in range(n + 1)]; 
    for i in range(0, n + 1): 
        for j in range(0, min(i, n) + 1): 
            if (j == 0 or j == i): 
                C[i][j] = 1;  
            else: 
                C[i][j] = (C[i - 1][j - 1] + 
                           C[i - 1][j]);  
    for i in range(1, n + 1): 
        for j in range(1, i + 1): 
            print("1/", end = ""); 
            print(i * C[i - 1][j - 1],  
                           end = " "); 
        print(); 
 # write a python function to check whether the given series is in Arithematic progression
 
 def checkIsAP(arr, n): 
    if (n == 1): return True
    arr.sort() 
    d = arr[1] - arr[0] 
    for i in range(2, n): 
        if (arr[i] - arr[i-1] != d): 
            return False
  
    return True
 
  # write a python function to check whether the given series is in harmonic progression
  
def is_geometric(li): 
    if len(li) <= 1: 
        return True
    ratio = li[1]/float(li[0]) 
    for i in range(1, len(li)): 
        if li[i]/float(li[i-1]) != ratio:  
            return False
    return True
  # write a python function to find the area of a circumscribed circle of an equilateral triangle
  
   def area_cicumscribed(a): 
    return (a * a * (3.14159265 / 3)) 
    
  # write a python function to find the side of a octogon inscribed in a square
  
  def octaside(a): 
    if a < 0: 
        return -1
    s = a / (1.414 + 1) 
    return s 
  
 # write a python program to find the area of enneagon
  
  length = 6
  Nonagon_area = 6.1818 * (length ** 2)  
  print("Area of regular Nonagon is = ", Nonagon_area) 
  
 # write a python function to find the day of the week given the date
 
 def dayofweek(d, m, y): 
    t = [ 0, 3, 2, 5, 0, 3, 
          5, 1, 4, 6, 2, 4 ] 
    y -= m < 3
    return (( y + int(y / 4) - int(y / 100) 
             + int(y / 400) + t[m - 1] + d) % 7) 
  
  # write a python function to calculate the MDAS factorial of a number
  
 def MDAS_Factorial( N ):   
    if N <= 2: 
        return N 
    if N <= 4: 
        return N + 3      
    if (N - 4) % 4 == 0: 
        return N + 1
    elif (N - 4) % 4 <= 2: 
         return N + 2
    else: 
         return N - 1
         
 # write a python function to find the nth pronic number
 
 def findRectNum(n): 
    return n*(n + 1) 
 
 #write a python function to find the sum of N pronic numbers
 def calculateSum(N): 
  
    return (N * (N - 1) // 2 + 
            N * (N - 1) * (2 * 
                 N - 1) // 6); 
  
  #write a python function to find the sum of first N even numbers
  
  def evensum(n): 
    curr = 2
    sum = 0
    i = 1 
    while i <= n: 
        sum += curr  
        curr += 2
        i = i + 1
    return sum
    
 # write a python function to check whether a number can be written as a sum of 3 primes (Goldbach Weak Coonjecture)
 
 def check(n): 
  if n % 2 == 1 and n > 5: 
    print('YES') 
  else: 
    print('NO') 
 # write a python function to find the nth perrin number
 
 def per(n): 
  
    if (n == 0): 
        return 3; 
    if (n == 1): 
        return 0; 
    if (n == 2): 
        return 2; 
    return per(n - 2) + per(n - 3); 
    
 # write a python function to find the betrothed numbers smaller than n
  
def BetrothedNumbers(n) : 
      
    for num1 in range (1,n) :  
        sum1 = 1    
        i = 2
        while i * i <= num1 : 
            if (num1 % i == 0) : 
                sum1 = sum1 + i 
                if (i * i != num1) : 
                    sum1 += num1 / i 
            i =i + 1
        if (sum1 > num1) : 
              
            num2 = sum1 - 1
            sum2 = 1
            j = 2
            while j * j <= num2 : 
                if (num2 % j == 0) : 
                    sum2 += j 
                    if (j * j != num2) : 
                        sum2 += num2 / j 
                j = j + 1
            if (sum2 == num1+1) : 
                print ('('+str(num1)+', '+str(num2)+')') 
                
 # write a python function to implement linear extrapolation
 
 def extrapolate(d, x): 
    y = (d[0][1] + (x - d[0][0]) / 
        (d[1][0] - d[0][0]) * 
        (d[1][1] - d[0][1]));    
    return y;  
 # write a python function to print the collatz sequence
 
 def printCollatz(n): 
    while n != 1: 
        print(n, end = ' ') 
        if n & 1: 
            n = 3 * n + 1
        else: 
            n = n // 2  
    print(n) 
    
 # write a python function to print the newman-conway sequence
 
 def sequence(n): 
    f = [0, 1, 1] 
    print(f[1], end=" "), 
    print(f[2], end=" "), 
    for i in range(3,n+1): 
        f.append( f[f[i - 1]] + f[i - f[i - 1]]) 
        print(f[i], end=" "), 
     
 #write a python function to find the nth term in a padovan's sequence
 def padovan(n): 
    pPrevPrev, pPrev, pCurr, pNext = 1, 1, 1, 1 
    for i in range(3, n+1): 
        pNext = pPrevPrev + pPrev 
        pPrevPrev = pPrev 
        pPrev = pCurr 
        pCurr = pNext 
  
    return pNext; 
    
 # write a python function to print the raceman sequence
 
 def recaman(n): 
    arr = [0] * n  
    arr[0] = 0
    print(arr[0], end=", ") 
    for i in range(1, n):     
        curr = arr[i-1] - i 
        for j in range(0, i):  
            if ((arr[j] == curr) or curr < 0): 
                curr = arr[i-1] + i 
                break              
        arr[i] = curr 
        print(arr[i], end=", ") 
 # write a python function to print the sylvester's sequence
 
 def printSequence(n) : 
    a = 1
    ans = 2 
    N = 1000000007
    i = 1
    while i <= n : 
        print ans, 
        ans = ((a % N) * (ans % N)) % N 
        a = ans 
        ans = (ans + 1) % N 
        i = i + 1
          
 # write a python function to find the sum of two numbers without using arithematic operators
 
 def Add(x, y): 
    while (y != 0): 
        carry = x & y 
        x = x ^ y 
        y = carry << 1     
    return x 
 
  # write a python function to subtract two numbers without using arithemmatic operators
  
  def subtract(x, y):  
    while (y != 0): 
        borrow = (~x) & y 
        x = x ^ y 
        y = borrow << 1
      
    return x 
 # write a python function to find the smallest number to be subtracted from a given number to make the given number palindrome
 
def minSub(N):
    count = 0
    while (N >= 0):
        num = N
        rev = 0
        while (num != 0):
            digit = num % 10
            rev = (rev * 10) + digit
            num = num // 10
        if (N == rev):
            break
        count += 1
        N -= 1
    print(count)
    
 # write a python function to check whether the number is a perfect square without finding square root
 
 def isPerfectSquare(n) :
    i = 1
    while(i * i<= n):
        if ((n % i == 0) and (n / i == i)):
            return True          
        i = i + 1
    return False
    
 # write a python function to find the square root of a number using babylonian method
 
 def squareRoot(n): 
        x = n 
        y = 1
        e = 0.000001
        while(x - y > e): 
      
            x = (x + y)/2
            y = n / x 
      
        return x 
        



List all Python Programs