Défi
Étant donné un entier positif N
, affichez la somme des premiers N
inverses sous forme de fraction exacte, qui est représentée par une paire d'entiers dans un ordre cohérent représentant le numérateur et le dénominateur.
Règles
La sortie doit être exacte.
La sortie doit être une paire d'entiers dans un ordre cohérent représentant le numérateur et le dénominateur.
L'utilisation de types numériques non entiers (intégrés ou bibliothèque) est interdite.
- Clarification / exception: les types numériques non entiers sont corrects si et seulement si toutes les valeurs utilisées, calculées et retournées sont des entiers (c'est-à-dire que votre langue utilise des nombres rationnels par défaut, mais vous n'utilisez que l'arithmétique entière dans votre réponse)
La sortie doit être aussi réduite que possible. (
3/2
ça va,6/4
non)Les failles standard sont interdites.
Les soumissions doivent fonctionner pour des entrées d'au moins 20, ou cette méta , selon la valeur la plus élevée.
Cas de test
1: 1/1
2: 3/2 (1/1 + 1/2)
3: 11/6 (1/1 + 1/2 + 1/3)
4: 25/12 etc.
5: 137/60
6: 49/20
20: 55835135/15519504
56: 252476961434436524654789/54749786241679275146400
226: 31741146384418617995319820836410246588253008380307063166243468230254437801429301078323028997161/5290225078451893176693594241665890914638817631063334447389979640757204083936351078274058192000
Génération de cas de test (Python 3)
import fractions
def f(x):
return sum(fractions.Fraction(1,i) for i in range(1,x+1))
Semblable à ce défi et à ce défi .
Les numérateurs sont OEIS A001008 et les dénominateurs sont OEIS A002805 .
gcd
une "fonction intégrée" si votre langue le propose?
gcd
et les autres fonctions intégrées conviennent. Les types rationnels / fractionnaires ne sont pas autorisés.