Heim > Backend-Entwicklung > C++ > Hauptteil

Smarandache-Welin-Sequenz

王林
Freigeben: 2023-09-09 11:45:03
nach vorne
826 Leute haben es durchsucht

Smarandache-Welin-Sequenz

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.

Algorithmus

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.

Methode

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.

Beispiel

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;
}
Nach dem Login kopieren

Ausgabe

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
Nach dem Login kopieren

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.

Fazit

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!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage