Je suis nouveau à Qbasic et je voulais apprendre à imprimer les nombres premiers de 1 à une variable qui est définie à un nombre entré par l'utilisateur .. s'il vous plaît aider ... J'ai essayé d'utiliser la boucle while while mais cela n'a pas fonctionné. MerciQBASIC Prime nombres de 1 à var
Répondre
répondre à votre question comme guide:
Vous devez trouver des séparateurs valides de votre numéro d'entrée (n > 1
):
séparateurs valides de
n
:
En cas de un nombre inférieur àn
oun/2
qu'après avoir divisé son réseau est égal à zéro;
n MOD i = 0
.
Maintenant, utilisez l'une de ces méthodes pour trouver le nombre premier:
- Somme des séparateurs valides d'un nombre premier est égal à ce nombre plus un, et pour séparateurs valides moins de
n
oun/2
est une;
sum = 1
- Nombre de séparations valides d'un nombre premier est égal à deux, et pour des séparateurs valides moins de
n
oun/2
est une;
count = 1
Cette snip de code calcule les nombres premiers de 2 à une gamme supérieure.
Il fonctionne en divisant la valeur de test par tous les nombres de 2 à la racine carrée de la gamme supérieure.
PRINT "Upper value";
INPUT n
FOR l = 2 TO n
f = -1
FOR m = 2 TO INT(SQR(l))
IF l/m = l \ m THEN
f = 0
EXIT FOR
END IF
NEXT
IF f THEN
PRINT l
END IF
NEXT
Calcule les nombres premiers jusqu'à n en utilisant la force brute. – eoredson
Bien que cet extrait de code puisse résoudre la question, [y compris une explication] (// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) aide vraiment à améliorer la qualité de votre message. Rappelez-vous que vous répondez à la question pour les lecteurs dans le futur, et que ces personnes pourraient ne pas connaître les raisons de votre suggestion de code. Essayez également de ne pas surcharger votre code avec des commentaires explicatifs, ceci réduit la lisibilité du code et des explications! –
Ajout de texte au-dessus du code décrivant le but et la méthode. – eoredson
C'est assez facile. Tout ce que vous avez à faire est de lancer une boucle imbriquée. Une boucle qui vérifie si un nombre est premier ou non et un pour l'afficher.
CLS
INPUT "enter a range"; a
FOR i = 1 TO a
FOR j = 1 TO i
IF i MOD j = 0 THEN
check = check + 1
END IF
NEXT j
IF check = 2 THEN
PRINT i
END IF
check = 0
NEXT i
END
Nous pouvons vous aider avec ce que vous avez, mais pour cela vous devez ajouter ce code à votre question et expliquer ce que/où il ne fonctionne pas (sur quelle ligne, ou ce que la sortie est, ce que vous attendiez). J'ai trouvé [cette question] (http://stackoverflow.com/questions/17113886/convert-program-from-qbasic-to-python) qui semble être une implémentation de nombres premiers fonctionnels dans QBASIC. Peut-être que ça aide. Vous [recherche] (http://stackoverflow.com/search?q=prime+qbasic) peut-être pour différents mots-clés. – rene