Prüfen Sie, ob N eine schwache Primzahl ist oder nicht
Bei einer gegebenen positiven ganzen Zahl N besteht die Aufgabe darin, zu prüfen, ob N eine schwache Primzahl ist oder nicht.
In der Zahlentheorie ist eine schwache Primzahl eine Primzahl, die kleiner ist als das arithmetische Mittel der nächsten Primzahlen, dh nächster und vorheriger Primzahlen.
Die ersten paar schwachen Primzahlen sind 3, 7, 13, 19, 23, 31, 43, 47, 61, …
Eine schwache Primzahl P n kann dargestellt werden alswobei n sein Index in der geordneten Menge von Primzahlen ist.
Beispiele:
Eingabe: N = 13
Ausgabe: Ja
13 ist die 6. Primzahl, das arithmetische Mittel der 5. und 7. Primzahl, dh 11 und 17, ist 14.
13 ist kleiner als 14, also ist 13 eine schwache Primzahl.Eingang: N = 11
Ausgang: Nein
Sich nähern:
- Wenn N keine Primzahl ist oder es die erste Primzahl ist, dh 2 , dann drucke No .
- Anderenfalls finde die Primzahlen, die N am nächsten sind (eine links und eine rechts), und speichere ihren arithmetischen Mittelwert in mean .
- Wenn N < Mittel, dann drucke Ja .
- Sonst drucke Nr .
Unten ist die Implementierung des obigen Ansatzes:
C++14
// C++ program to check // if a given number is weak prime #include <bits/stdc++.h> using namespace std; // Utility function to check // if a number is prime or not 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; } // Function that returns true // if n is a weak prime bool isWeakPrime(int n) { // If n is not a prime number or // n is the first prime then return false if (!isPrime(n) || n == 2) return false; // Initialize previous_prime to n - 1 // and next_prime to n + 1 int previous_prime = n - 1; int next_prime = n + 1; // Find next prime number while (!isPrime(next_prime)) next_prime++; // Find previous prime number while (!isPrime(previous_prime)) previous_prime--; // Arithmetic mean int mean = (previous_prime + next_prime) / 2; // If n is a weak prime if (n < mean) return true; else return false; } // Driver code int main() { int n = 13; if (isWeakPrime(n)) cout << "Yes"; else cout << "No"; return 0; } // This code is contributed by himanshu77
Java
// Java program to check // if a given number is weak prime import java.util.*; class GFG{ // Utility 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; } // Function that returns true // if n is a weak prime static boolean isWeakPrime(int n) { // If n is not a prime number or // n is the first prime then return false if (!isPrime(n) || n == 2) return false; // Initialize previous_prime to n - 1 // and next_prime to n + 1 int previous_prime = n - 1; int next_prime = n + 1; // Find next prime number while (!isPrime(next_prime)) next_prime++; // Find previous prime number while (!isPrime(previous_prime)) previous_prime--; // Arithmetic mean int mean = (previous_prime + next_prime) / 2; // If n is a weak prime if (n < mean) return true; else return false; } // Driver code public static void main(String args[]) { int n = 13; if (isWeakPrime(n)) System.out.print("Yes"); else System.out.print("No"); } } // This code is contributed by Code_Mech
Python3
# Python3 program to check if a given # number is weak prime # Utility function to check # if a number is prime or not def 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 # Function that returns true # if n is a weak prime def isWeakPrime(n): # declaring variables as global global next_prime, previous_prime # If n is not a prime number or n is # the first prime then return false if(not isPrime(n) or n == 2): return False # Initialize previous_prime to n - 1 # and next_prime to n + 1 previous_prime = n - 1 next_prime = n + 1 # Find next prime number while(not isPrime(next_prime)): next_prime += 1 # Find previous prime number while (not isPrime(previous_prime)): previous_prime -= 1 # Arithmetic mean mean = (previous_prime + next_prime) // 2 # If n is a weak prime if(n < mean): return True else: return False # Driver code if __name__ == '__main__': n = 13 if(isWeakPrime(n)): print("Yes") else: print("No") # This code is contributed by Shivam Singh
C#
// C# program to check if a given number is weak prime using System; class GFG { // Utility 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; } // Function that returns true // if n is a weak prime static bool isWeakPrime(int n) { // If n is not a prime number or // n is the first prime then return false if (!isPrime(n) || n == 2) return false; // Initialize previous_prime to n - 1 // and next_prime to n + 1 int previous_prime = n - 1; int next_prime = n + 1; // Find next prime number while (!isPrime(next_prime)) next_prime++; // Find previous prime number while (!isPrime(previous_prime)) previous_prime--; // Arithmetic mean int mean = (previous_prime + next_prime) / 2; // If n is a weak prime if (n < mean) return true; else return false; } // Driver code public static void Main() { int n = 13; if (isWeakPrime(n)) Console.WriteLine("Yes"); else Console.WriteLine("No"); } }
Javascript
<script> // Javascript program to check // if a given number is weak prime // Utility function to check // if a number is prime or not function 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(let i = 5; i * i <= n; i = i + 6) if (n % i == 0 || n % (i + 2) == 0) return false; return true; } // Function that returns true // if n is a weak prime function isWeakPrime(n) { // If n is not a prime number or // n is the first prime then return false if (!isPrime(n) || n == 2) return false; // Initialize previous_prime to n - 1 // and next_prime to n + 1 let previous_prime = n - 1; let next_prime = n + 1; // Find next prime number while (!isPrime(next_prime)) next_prime++; // Find previous prime number while (!isPrime(previous_prime)) previous_prime--; // Arithmetic mean let mean = (previous_prime + next_prime) / 2; // If n is a weak prime if (n < mean) return true; else return false; } let n = 13; if (isWeakPrime(n)) document.write("Yes"); else document.write("No"); // This code is contributed by divyesh072019. </script>
ja
Falls Sie an Live-Kursen mit Experten teilnehmen möchten , beziehen Sie sich bitte auf DSA Live-Kurse für Berufstätige und Competitive Programming Live for Students .