Tâche:
Votre programme reçoit une fraction simple appropriée et positive dans le format .<numerator>/<denominator>
Pour cette entrée, il doit trouver deux fractions.
- Une fraction inférieure à l'entrée.
- Une fraction supérieure à l'entrée.
Les deux fractions doivent avoir un dénominateur inférieur à l'entrée. De toutes les fractions possibles, elles devraient avoir la plus faible différence avec l'entrée.
Sortie:
La sortie de votre programme doit être:
- Une fraction plus petite que l'entrée, au format
<numerator>/<denominator>
. - Suivi d'un caractère espace (code ASCII 32).
- Suivi d'une fraction supérieure à l'entrée, au format
<numerator>/<denominator>
.
Comme suit:
«fraction that is < input» «fraction that is > input»
Règles:
- Toutes les fractions produites doivent être en termes les plus bas .
- Toutes les fractions produites doivent être des fractions appropriées.
- S'il n'y a pas de fractions appropriées possibles autorisées par les règles, vous devez générer
0
une entrée au lieu d'une fraction <entrée et1
au lieu d'une fraction> entrée. - Vous pouvez choisir si vous souhaitez recevoir la fraction sous forme d'argument de ligne de commande (par exemple
yourprogram.exe 2/5
) ou inviter l'utilisateur à entrer. - Vous pouvez supposer que votre programme ne recevra aucune entrée invalide.
- Le code le plus court (en octets, dans n'importe quelle langue) gagne.
Tous les arguments de ligne de commande non standard (arguments qui ne sont normalement pas requis pour exécuter un script) comptent pour le nombre total de caractères.
Ce que votre programme ne doit pas faire:
- Dépendez de toutes les ressources externes.
- Dépendre d'avoir un nom de fichier spécifique.
- Sortie autre chose que la sortie requise.
- Prenez exceptionnellement longtemps à courir. Si votre programme dure plus d'une minute pour les fractions avec un numérateur et un dénominateur à 6 chiffres (par exemple
179565/987657
) sur l'ordinateur d'un utilisateur à domicile moyen, il n'est pas valide. - Fractions de sortie avec
0
comme dénominateur. Vous ne pouvez pas diviser par zéro. - Fractions de sortie avec
0
comme numérateur. Votre programme doit sortir0
au lieu d'une fraction. - Réduisez une fraction saisie. Si la fraction donnée en entrée est réductible, vous devez utiliser la fraction telle qu'elle est entrée.
- Votre programme ne doit pas être écrit dans un langage de programmation pour lequel il n'existait pas de compilateur / interprète accessible au public avant la publication de ce défi.
Exemples:
Entrée: 2/5
Sortie: 1/3 1/2
Entrée: 1/2
Sortie: 0 1
Entrée: 5/9
Sortie: 1/2 4/7
Entrée: 1/3
Sortie: 0 1/2
Entrée: 2/4
Sortie: 1/3 2/3
Entrée: 179565/987657
Sortie: 170496/937775 128779/708320
1/3 1/2
.