Étape 1: L’algorythme
Pour chaque contrôle numéro si c’est le premier et dans ce cas, aviser utilisateur via SMS. Pour décider si oui ou non un nombre n est un nombre premier, nous devons essayer de diviser avec tout nombre compris entre 2 et n-1 et voir si le reste à la division est toujours pas 0. Si c’est vrai, n n’est pas divisible avec n’importe quel nombre sauf 1 et lui-même, qui est la définition d’un nombre premier.
Cet algorithme peut être optimisé en vérifiant seulement les nombres impairs (tous les nombres pairs sont divisibles par 2 et donc pas de nombres premiers) et en vérifiant à seulement sqrt(n) au lieu de tout le chemin à n-1 (il n’y a pas de diviseur de n qui est plus grande que sqrt(n)) et surtout, que nous pourrions diviser seulement avec des nombres premiers. Pourquoi est-ce que j’ai n’a pas fait que ? UN LinkIt est si puissant qu’il trouve des primes plus rapidement qu’ils pourraient être SMSed.
Maintenant la question est comment faire ces SMS' intéressant si ils auraient venir tout le temps ? Il s’avère que, il est impossible de dire dans quelle mesure la part deux nombres premiers sera. Il sera toujours au moins un de non privilégié entre (à l’exception des 2 et 3) alors pourquoi ne pas utiliser qui ? Quand on trouve un nombre premier, programme s’arrête pour la durée fixée par comment éloignés des deux derniers nombres premiers, multipliés par amount.and retard qu’après ce SMS sera envoyé et le numéro suivant est testé.
Si vous jetez un oeil au code ci-joint, vous verrez que j’ai aussi ajouté un "limbo" - une partie du code avec aucune évasion - où le programme se bloque si elle dépasse 32 bit long int limite et remonte à compter du 1er vers le haut (nous ne voulons pas cela).