Dans ce défi, nous essayons de résoudre deux problèmes importants à la fois. Elles sont:
- Étant donné les entiers a et b , dites si a b -1 est un nombre premier.
- Étant donné les entiers a et b , retournez nCr (a, b).
Plus précisément, vous devez écrire deux programmes, l'un qui effectue la première tâche et l'autre qui effectue l'autre. Comme nous voulons résoudre les deux problèmes en même temps, il est encouragé d'utiliser un même morceau de code dans les deux programmes.
Notation
Le score d'une réponse est la distance Levenshtein entre les deux programmes. Un score plus bas est meilleur. En cas d'égalité, la réponse avec le code combiné le plus court des deux programmes l'emporte. Vous pouvez utiliser ce script pour calculer le score de votre solution.
Règles
- Vous devez écrire deux programmes dans la même langue pour résoudre les tâches décrites ci-dessus. Vous pouvez utiliser toutes les méthodes d'E / S que vous souhaitez. Pour la tâche 1, vous pouvez renvoyer une valeur vérité / fausse ou choisir deux valeurs pour signifier vrai et faux et les renvoyer en conséquence. Par exemple. vous pouvez choisir cela
"prime"
signifie vrai et"not prime"
faux. - Les algorithmes que vous utilisez doivent fonctionner pour toutes les entrées possibles, mais cela ne pose aucun problème si le code échoue pour les grands nombres en raison des limitations du type de numéro utilisé. Vous pouvez supposer que l'entrée est valide.
Aucun sous-ensemble du programme ne doit résoudre le problème, c'est-à-dire. le code ne doit pas fonctionner si des caractères sont supprimés. Par exemple, le code suivant n'est pas valide, car il est possible de supprimer le bloc else inutilisé sans interrompre le programme:
if (1) { /* change to 0 to get the second program*/ ... } else { ... }
Les échappatoires standard ne sont pas autorisées.
Cas de test
a b -1 est premier?
a b
1 1 false
2 3 true
5 2 false
2 5 true
4 3 false
2 7 true
nCr
a b nCr(a,b)
1 1 1
5 2 10
4 3 4
10 7 120
12 5 792