Zuerst könnten Sie irgendwo einen Speicherort verwenden, um zu kennzeichnen, ob die Zeichenkette die Hauptlänge hat oder nicht, und dann mehr oder weniger das tun, was Ness vorgeschlagen hat (obwohl ich seine Antwort nicht vollständig verstehe).
Verwenden Sie das Sieb von Eratosthenes. Beginnen Sie mit einer Hilfszeichenfolge der Länge 2, und bewegen Sie eine Zeile nach rechts in die Eingabezeichenfolge und die Hilfszeichenfolge. Wenn Sie das Endezeichen der Hilfszeichenfolge drücken, kehren Sie zum Anfang der Hilfszeichenfolge zurück, bis Sie das Endezeichen der Eingabe treffen Zeichenfolge. Auf diese Weise können Sie sehen, ob die Hilfszeichenfolge die Eingabezeichenfolge teilt. Gehen Sie dann zu einer Hilfsstring der Länge 3 und machen Sie dasselbe, und so weiter. Nur wenn keine Länge der Hilfszeichenfolgen die Eingabe-Zeichenfolgenlänge teilt, ist die Eingabezeichenfolgenlänge prime. Wenn eine Länge der Helper-Zeichenkette die Länge der Eingabe-Zeichenkette teilt, verwenden Sie Ihren Flag-Speicher-Slot, um dies anzuzeigen. Und der Algorithmus überprüft den Merkerspeicherplatz, und wenn er markiert ist, wird die gesamte Verarbeitung abgebrochen, so dass die Zeichenfolge zurückgewiesen werden kann.
Nun, während des Iterierens über die Eingabe, erlauben Sie einen nicht-deterministischen Sprung aus der inneren Schleife, so dass die Maschine beginnen kann, die Hilfsfolge der nächsten Länge zu testen. Auf diese Weise werden Helperketten aller Länge gleichzeitig getestet, aber wenn Ihr Flaggenschlitz markiert ist, hören sie alle auf zu arbeiten und lehnen die Kette ab.
Ein letztes Problem. Strings könnten akzeptiert werden vor (obwohl Zeit ist eine Art von Nicht-Konzept hier) sie sind nicht-Prime gefunden. Wenn Sie dieses Problem lösen können, sind Sie mir einen Schritt voraus.
P.S. Drineas ist böse
Sie sollten Ihren Dozenten oder Tutor zur Klärung bitten. Wir können versuchen zu erraten, was sie gemeint haben (so intelligent eine Vermutung auch sein mag), aber nur sie wissen es sicher. – paxdiablo
Wenn Sie nach Ihrem Titel gehen wollen, dann ist wahrscheinlich gemeint, dass Ihr NTM irgendeine Zeichenfolge von 'a's primärer Länge akzeptieren sollte. Zählen Sie also Ihre 'a's, lehnen Sie die Zeichenfolge ab, wenn ein anderes Symbol zu sehen ist, und akzeptieren Sie, wenn keine weiteren Symbole vorhanden sind. Schaut so aus. Und natürlich ist kein Prime "bekannt", Ihr Band würde nur eine Sequenz von 'a's anfänglich enthalten, und der ganze Rest wäre leer. –
Wahrscheinlich besser auf http://programmers.stackexchange.com/ – Abizern