Vous devez écrire 3 programmes et / ou fonctions dans une langue.
Tous ces programmes devraient résoudre la même tâche mais ils devraient tous donner des résultats différents (mais valides). (C'est-à-dire que pour chaque paire de programmes, leur entrée devrait générer des ensembles différents (mais valides) de numéros de sortie.)
La tâche
- Vous recevez un entier
n
supérieur à 1 - Vous devez retourner ou produire des entiers positifs
n
distincts , et aucun d'entre eux ne doit être divisible parn
. - L'ordre des nombres n'a pas d'importance et une permutation de nombres ne compte pas comme des sorties différentes.
Un triplet valide de programmes avec quelques input => output
paires:
program A:
2 => 5 9
4 => 5 6 9 10
5 => 2 4 8 7 1
program B:
2 => 1 11
4 => 6 9 1 2
5 => 4 44 444 4444 44444
program C (differs only in one number from program B):
2 => 1 13
4 => 6 9 1 2
5 => 4 44 444 4444 44444
Notation
- Votre score est la somme des longueurs des 3 programmes ou fonctions.
- Un score plus bas est meilleur.
- Si vos programmes / fonctions partagent du code, le code partagé doit être compté dans la longueur de chaque programme qui utilise le code.
code-golf
number
arithmetic
number-theory
randomra
la source
la source
Réponses:
Pyth,
1716 octets5 octets:
Les sorties:
6 octets:
Les sorties:
5 octets:
Les sorties:
Version alternative, dans l'ordre croissant:
-ShQQ
la source
J, 16 octets
Fonction 1, 5 octets
Fonction 2, 6 octets
Fonction 3, 5 octets
Comment ça fonctionne
Fonction 1
Puisque P est premier et P> y , y ne peut pas diviser P e .
Fonction 2
Si y divisait P e + y , il diviserait également P e + y - y = P e .
Fonction 3
Si y divisait (y + 1) e, un facteur premier Q de y devrait diviser (y + 1) e .
Mais alors, Q diviserait à la fois y et y + 1 et, par conséquent, y + 1 - y = 1 .
la source
Dyalog APL,
1617 octetsla source
Vitsy , 54 octets
Programmes:
Les sorties:
Comment ça marche (en utilisant le premier programme comme explication):
Essayez-le en ligne!
la source
Perl, 79
Un caractère a été ajouté à chaque programme car cela nécessite l'
-n
indicateur.Assez simple.
la source
Mathematica, 12 + 12 + 12 = 36 octets
Tests:
la source
CJam, 8 + 8 + 8 = 24 octets
Ce sont trois fonctions sans nom qui s'attendent
n
à être sur la pile et à laisser une liste d'entiers à sa place. Je ne suis pas sûr que ce soit optimal, mais je devrai chercher une solution plus courte plus tard.Suite de tests.
Résultats:
Le premier fonctionne également comme
ou
la source
Python 2, 79 octets
Trois fonction anonyme qui commencent à
1
et compter par chacunn, 2*n, 3*n
pour lesn
termes.la source
Sérieusement, 20 octets
Ouais, ce n'est pas optimal ...
la source
Par , 16 octets
L'encodage personnalisé, décrit ici , utilise un seul octet par caractère.
Les sorties
la source
Haskell, 54 octets
Ces trois fonctions sont assez simples donc…
la source
Octave, 11 + 13 + 13 = 37 octets
la source
Python 2, 125 octets
Chaque ligne ici est un programme complet. La solution la plus évidente dans mon esprit.
EDIT @ Sherlock9 a enregistré deux octets.
la source
Haskell, 50
Exemples:
la source
Golfscript, 50
5157octetsUne version Golfscript de ce qui était autrefois le code Python de la quintopie . Chaque fonction enlève
n
la pile.la source
TI-Basic (TI-84 Plus CE),
5540 octets au totalSimple, similaire à de nombreuses autres réponses ici, chacune affiche une liste des nombres (X + A) N + 1 pour X dans la plage (N) et avec A étant le programme (1, 2 ou 3).
Ancienne solution (55 octets):
Simple, similaire à de nombreuses autres réponses ici, chacune affiche les nombres (X + A) N + 1 pour X dans la plage (N) et avec A étant le programme (1, 2 ou 3).
la source