0
votes

Je ne peux pas obtenir ma liste d'imprimer correctement avec des virgules

J'essaie d'obtenir mon programme de trouver si un numéro est prime s'il ne répertorie pas ce que le numéro est divisible par xxx

actuellement, quand j'entre 62 Les sorties

62 sont divisibles par 2, 31.

mais lorsque je tente de modifier la déclaration IF (i <3) que ce qu'il va gâcher avec d'autres impressions telles que l'essai 468 Il s'agira d'imprimer

468 est divisible par 2, 313.

c

3 commentaires

Pourquoi avez-vous choisi une telle solution étrange? Vous pouvez le résoudre à l'intérieur du premier pour boucle. Si le reste est nul, imprimez le diviseur.


Le bloc de code actuel: printf ("Entrez un entier compris entre 1 et 1000 (inclus): \ n"); scanf ("% d", & n); Si (n> 1000 || n <0) {printf ("Vous devez entrer un nombre compris entre 1 et 1000 (inclus). \ n"); } est très compliqué et donne à l'utilisateur qu'une seule chance de bien réussir. Suggérer: do {printf ("entrez un entier compris entre 1 et 1000 (inclus): \ n"); scanf ("% d", & n); tandis que (n> 1000 || n <0);


Remarque: donné n le numéro maximum à vérifier est sqrt (n)


3 Réponses :


0
votes

La voie de l'impression était le problème. Il a trouvé 2 et imprimé 2, . Il a trouvé 3 et imprimé 3 , puis il a trouvé 13 comme dernier diviseur. À partir de celui-ci, vous avez 2, 313 comme sortie.

J'ai modifié la pièce lorsque le numéro n'est pas un premier: xxx


0 commentaires

1
votes

Le code affiché, essaie d'abord le nombre donné contre chaque nombre à lui-même, en comptant le nombre de diviseurs, uniquement pour déterminer s'il est prime. Si ce n'est pas le cas, alors il (avec beaucoup de chiffres magiques) recalcule ces facteurs et essaie de les imprimer comme demandé.

Il serait plus facile de calculer les nombres premiers (une fois) et la liste des facteurs en premier, en les stockant dans Certaines tableaux et génèrent uniquement la sortie souhaitée.

Vous pouvez produire la même sortie tout en calculant chaque facteur en maintenant au moins une piste du nombre de facteurs déjà imprimés, le cas échéant.

Dans ce cas, je changerais l'algorithme en quelque chose comme ça xxx

testtable ici .


0 commentaires

2
votes

Le code proposé suivant:

  1. compile parfaitement
  2. ne vérifie pas les erreurs d'E / S
  3. effectue la fonctionnalité souhaitée
  4. utilise la fonction de variable de longueur de longueur de C

    et maintenant, le code proposé: xxx

    Les exécutions suivantes sont avec les valeurs fournies par OP xxx


0 commentaires