Dieses Problem besteht darin, die ersten m Terme der Smarandache-Wellin-Folge auszugeben, wobei m eine beliebige positive ganze Zahl ist. Wir werden in C++ einen Algorithmus zum Drucken der ersten m Terme einer Smarandache-Wellin-Folge sehen. Aber vorher müssen wir die Smarandache-Wellin-Sequenz verstehen.
Eine Smarandache-Wellin-Sequenz ist eine Sequenz, die aus Smarandache-Wellin-Zahlen besteht. Smarandache-Wellin-Zahlen sind ganze Zahlen, die durch Verkettung aufeinanderfolgender Primzahlen gebildet werden. Die ersten paar Primzahlen sind 2, 3, 5, 7, 11, 13, 17, 19, 23….
Die erste Smarandache-Wellin-Zahl der Sequenz ist 2.
Die zweite Zahl in der Folge ist 23, die durch die Verbindung der ersten beiden aufeinanderfolgenden Primzahlen gebildet wird.
Die dritte Zahl in der Folge ist 235, die sich aus der Verbindung der ersten drei aufeinanderfolgenden Primzahlen ergibt.
In ähnlicher Weise können wir daraus schließen, dass der m-te Term der Smarandache-Wellin-Folge die Verbindung der ersten m aufeinanderfolgenden Primzahlen ist. Angenommen, wir möchten die 6. Smarandache-Wellin-Zahl, dann ist sie die Verkettung der ersten 6 aufeinanderfolgenden Zahlen, also 23571113.
Im obigen Problem erhalten wir eine positive ganze Zahl N und unsere Aufgabe besteht darin, die ersten N Smarandache-Wellin-Zahlen der Smarandache-Wellin-Sequenz auszudrucken. Zum Beispiel
EINGABE: N=4
Ausgabe: 2 23 235 2357
Erklärung: Dies sind die ersten vier Zahlen der Smarandache-Wellin-Folge, die jeweils aus den ersten vier aufeinanderfolgenden Primzahlen gebildet werden.
Eingabe: N=7
Ausgabe: 2 23 235 2357 235711 23571113 2357111317
Erklärung: Das i-te Element der Smarandache-Wellin-Folge ist die Verbindung der ersten i aufeinanderfolgenden Primzahlen, wobei i größer oder gleich 1 und kleiner oder gleich 7 ist.
Diese Methode ist möglicherweise so einfach, wie sie aussieht. Wir wissen, dass der N-te Term der Smarandache-Wellin-Folge die Verbindung der ersten N aufeinanderfolgenden Primzahlen ist.
Wenn wir also die ersten N aufeinanderfolgenden Primzahlen finden, erhalten wir die ersten N Smarandache-Wellin-Zahlen der Smarandache-Wellin-Folge, indem wir die I aufeinanderfolgenden Primzahlen jedes i-ten Termes weiter verketten. Wir können die ersten N Primzahlen finden, indem wir die folgenden Schritte ausführen -
Um die Anzahl der Primzahlen zu speichern, um die ersten N aufeinanderfolgenden Primzahlen zu erhalten, erstellen wir eine Variable.
Überprüfen Sie mithilfe einer Schleife, ob die Zahl eine Primzahl ist, bis die Anzahl gleich N ist, um die ersten N Primzahlen zu erhalten. Wenn es eine Primzahl ist, erhöhen wir die Primzahlzahl um 1.
Um festzustellen, ob eine Zahl eine Primzahl ist, durchlaufen wir eine for-Schleife, beginnend mit i=2, bis die Zahl kleiner oder gleich ihrer Quadratwurzel ist. Wenn die Zahl durch andere Zahlen teilbar ist, dann ist sie keine Primzahl, da Primzahlen nur zwei Faktoren haben, die Zahl selbst und 1.
Laut Mathematik enthält eine zusammengesetzte Zahl immer mindestens einen Faktor, der kleiner als die Quadratwurzel der Zahl ist. Um also festzustellen, ob eine Zahl eine Primzahl ist, iterieren wir einfach bis zur Quadratwurzel der Zahl.
Auf diese Weise können wir, beginnend bei 2 und eine nach der anderen prüfen, bis die Anzahl der Primzahlen gleich N ist, die ersten N aufeinanderfolgenden Primzahlen erhalten und sie im Array speichern.
Die nächste Aufgabe des Problems besteht darin, die ersten N Elemente der Smarandache-Wellin-Sequenz zu drucken. Diese Aufgabe ist sehr einfach. Wir können dies tun, indem wir eine verschachtelte Schleife verwenden und über ein Array iterieren, das die ersten N aufeinanderfolgenden Primzahlen speichert. Wir werden in einer Schleife von 0 bis zur Größe des Arrays iterieren und dann in einer verschachtelten Schleife von 0 bis i iterieren und alle Primzahlen bis i ausgeben. Auf diese Weise können wir für jedes i-te Element die Verbindung der erreichen Zuerst i aufeinanderfolgende Primzahlen.
Wir können die gewünschte Ausgabe erhalten, indem wir die folgenden Schritte befolgen −
Um zu überprüfen, ob eine Zahl eine Primzahl ist, erstellen Sie eine Funktion.
Erstellen Sie eine weitere Funktion, in der Sie die ersten N Primzahlen in einem Array speichern und dieses Array verwenden, um die ersten j aufeinanderfolgenden Primzahlen zu verketten, um den j-ten Term zu erhalten.
Deklarieren Sie eine Variable namens count, um die Anzahl der Primzahlen zu zählen. Und bevor count gleich N ist, wird jede Zahl beginnend mit 2 überprüft, um zu sehen, ob es sich um eine Primzahl handelt. Wenn es sich um eine Primzahl handelt, wird sie in dem von uns erstellten Array gespeichert.
Für die Verkettung der ersten N erforderlichen Primzahlen jedes Termes verwenden wir eine verschachtelte for-Schleife. So drucken wir die ersten N Terme der Smarandache-Wellin-Folge.
C++-Code zur Lösung des Problems mit dem oben genannten Algorithmus -
#include <iostream> #include <bits/stdc++.h> using namespace std; //function to check if the number is a prime number or not bool check(int N){ for(int i= 2; i <=sqrt(N); i++){ //iterating to check if the number has any divisor other than 1 and number itself if(N % i == 0){ //if it has return false since it is not a prime number return false; } } return true; //return true if it satisfies all the conditions } //function to print first N terms of Smarandache-Wellin sequence //using an array to store first N consecutive prime numbers void ans(int N){ int ans[N]; int count=0; //to count number of prime numbers for(int i=2;count<N;i++){ //for storing first N consecutive prime numbers in the array if(check(i)){ ans[count]=i; //if the number is prime store it in the array count++; //increase count } else { continue; } } cout<<"The first "<<N<<" terms of Smarandache-Wellin sequence are: "; for(int i=0;i<N;i++){ //for printing first N terms of Smarandache-Wellin sequence for(int a=0;a<=i;a++){ //for concatenating first a prime numbers for ath term cout<<ans[a]; } cout<<" "; } cout<<endl; } int main(){ int N=6; ans(N); N=12; ans(N); return 0; }
The first 6 terms of Smarandache-Wellin sequence are: 2 23 235 2357 235711 23571113 The first 12 terms of Smarandache-Wellin sequence are: 2 23 235 2357 235711 23571113 2357111317 235711131719 23571113171923 2357111317192329 235711131719232931 23571113171923293137
Zeitkomplexität: O(N*logN), weil wir prüfen wollen, ob jede Zahl bis N eine Primzahl ist.
Raumkomplexität: O(N), weil wir ein Array der Größe N verwenden.
In diesem Artikel haben wir etwas über die Smarandache-Wellin-Sequenz und die Konzepte dahinter erfahren. Mit effizienten Algorithmen haben wir auch gesehen, wie man die ersten N Terme einer Smarandache-Wellin-Sequenz in C++ druckt.
Ich hoffe, dass Sie beim Lesen dieses Artikels alle Konzepte zu diesem Problem klar verstehen können.
Das obige ist der detaillierte Inhalt vonSmarandache-Welin-Sequenz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!