Given a positive integer N, check if it is Pythagorean prime or not. If it is a Pythagorean prime, print ‘Yes’ otherwise print ‘No’.
Pythagorean primes : A prime number of the form 4*n + 1 is a Pythagorean prime. It can also be expressed as sum of two squares.
Pythagorean primes in the range 1 – 100 are:
5, 13, 17, 29, 37, 41, 53, 61, 73, 89, 97
Examples:
Input : N = 5 Output : Yes Explanation : 5 is a prime number and can be expressed in the form ( 4*n + 1 ) as ( 4*1 + 1 ). Input : N = 13 Output : Yes Explanation: 13 is a prime number and can be expressed in the form ( 4*n + 1 ) as ( 4*3 + 1 ).
A Simple Solution is to check first if the given number is prime or not and can be written in the form of 4*n + 1 or not. If yes, Then the number is Pythagorean prime, otherwise not.
Below is the implementation of the above approach
C++
// CPP program to check if a number is// Pythagorean prime or not#include <bits/stdc++.h>using namespace std;// Function to check if a number is // prime or notbool isPrime(int n){ // Corner cases if (n <= 1) return false; if (n <= 3) return true; // This is checked so that we can skip // middle five numbers in below loop if (n % 2 == 0 || n % 3 == 0) return false; for (int i = 5; i * i <= n; i = i + 6) { if (n % i == 0 || n % (i + 2) == 0) { return false; } } return true;}// Driver Programint main(){ int n = 13; // Check if number is prime // and of the form 4*n+1 if (isPrime(n) && (n % 4 == 1)) { cout << "YES"; } else { cout << "NO"; } return 0;} |
Java
// JAVA program to check if a number is// Pythagorean prime or notclass GFG { // Function to check if a number // is prime or not static boolean isPrime(int n) { // Corner cases if (n <= 1) return false; if (n <= 3) return true; // This is checked so that we can skip // middle five numbers in below loop if (n % 2 == 0 || n % 3 == 0) return false; for (int i = 5; i * i <= n; i = i + 6) { if (n % i == 0 || n % (i + 2) == 0) { return false; } } return true; } // Driver Program public static void main(String[] args) { int n = 13; // Check if number is prime // and of the form 4n+1 if (isPrime(n) && (n % 4 == 1)) { System.out.println("YES"); } else { System.out.println("NO"); } }} |
Python3
# Python 3 program to check if a number is # Pythagorean prime or not# Utility function to check# if a number is prime or notdef isPrime(n) : # Corner cases if (n <= 1) : return False if (n <= 3) : return True # This is checked so that we can skip # middle five numbers in below loop if (n % 2 == 0 or n % 3 == 0) : return False i = 5 while(i * i <= n) : if (n % i == 0 or n % (i + 2) == 0) : return False i = i + 6 return True # Driver Code n = 13 # Check if number is prime # and of the form 4n + 1if(isPrime(n) and (n % 4 == 1)): print("YES")else: print("NO") |
C#
// C# program to check if a number // is Pythagorean prime or not using System;class GFG{// Function to check if a number // is prime or not static bool isPrime(int n){ // Corner cases if (n <= 1) { return false; } if (n <= 3) { return true; } // This is checked so that we // can skip middle five numbers // in below loop if (n % 2 == 0 || n % 3 == 0) { return false; } for (int i = 5; i * i <= n; i = i + 6) { if (n % i == 0 || n % (i + 2) == 0) { return false; } } return true;}// Driver Code public static void Main(string[] args){ int n = 13; // Check if number is prime // and of the form 4n+1 if (isPrime(n) && (n % 4 == 1)) { Console.WriteLine("YES"); } else { Console.WriteLine("NO"); }}}// This code is contributed by Shrikant13 |
PHP
<?php// PHP program to check if // a number is Pythagorean // prime or not// Function to check if a // number is prime or notfunction isPrime($n){ // Corner cases if ($n <= 1) return false; if ($n <= 3) return true; // This is checked so that // we can skip middle five // numbers in below loop if ($n % 2 == 0 or $n % 3 == 0) return false; for ($i = 5; $i * $i <= $n; $i = $i + 6) { if ($n % $i == 0 or $n % ($i + 2) == 0) { return false; } } return true;}// Driver Code$n = 13;// Check if number is prime// and of the form 4*n+1if (isPrime($n) && ($n % 4 == 1)){ echo "YES";}else{ echo "NO";}// This code is contributed // by inder_verma?> |
Javascript
<script>// Javascript program to check if a number is// Pythagorean prime or not// Function to check if a number is // prime or notfunction isPrime(n){ // Corner cases if (n <= 1) return false; if (n <= 3) return true; // This is checked so that we can skip // middle five numbers in below loop if (n % 2 == 0 || n % 3 == 0) return false; for (var i = 5; i * i <= n; i = i + 6) { if (n % i == 0 || n % (i + 2) == 0) { return false; } } return true;}// Driver Programvar n = 13; // Check if number is prime// and of the form 4*n+1if (isPrime(n) && (n % 4 == 1)) { document.write( "YES");}else { document.write( "NO");}// This code is contributed by itsok.</script> |
YES
Time Complexity: O(sqrt(n))
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!
