C - déterminer si un nombre est premier

Je suis en train d'essayer de trouver une méthode qui prend un entier et retourne un booléen pour dire si le nombre est premier ou pas et je ne connais pas trop C; est-ce que quelqu'un veut bien me donner quelques conseils?

En gros, je voudrais faire cela en C# comme ceci:

static bool IsPrime(int number)
{
    for (int i = 2; i < number; i++)
    {
        if (number % i == 0 && i != number)
            return false;
    }
    return true;
}
  • C'est plus une question de mathématiques que d'une question de programmation, sûrement?
  • Voici quelques pointeurs: int *ptr; int *ptr2; int *ptr3. Désolé ne pouvais pas l'aider. De quelle taille sont les numéros qui vous permettra de vérifier? Et aussi, vous avez envie d'une heuristique ou quelque chose qui fonctionne toujours?
  • Venir avec vous de l'algorithme de la façon dont vous tester sans code) et puis on peut peut-être aider à l'exprimer en C.
  • Pensez à un algorithme, essayez de la mettre en œuvre et si vous avez un problème concret avec elle, vous trouverez quelqu'un qui vous aide. Vous ne pouvez pas attendre pour d'autres sur l'intégralité de vos devoirs. De toute façon il y a un moyen facile de trouver une solution: il suffit d'utiliser la fonction de recherche--si vous la recherche pour "premier", vous trouverez beaucoup de bonnes approches.
  • Quel est le point du " i != numéro lorsque vous avez "i < nombre' une condition de l'exécution de la boucle?
  • Jetez un oeil à ce lien, il contient une explication de la façon dont les choses fonctionnent. cprogramming.language-tutorial.com/2012/01/...
  • Notez également que la vérification i < number est exagéré. Par définition, si un certain nombre x = a * b, soit a ou b est < int(sqrt(x)) et l'autre est plus grande. Si votre boucle ne devrait avoir besoin d'aller jusqu'à int(sqrt(x)).

InformationsquelleAutor Jimmy | 2009-10-08