Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Hvis kvadratroten av et gitt tall er det samme som antall bokstaver i tallordet,
# kaller vi tallet for et kvadratrotord.
#
# Kjør scriptet med en nedre og øvre grense å teste på norsk eller engelsk, for eksempel slik:
#
# $ ./python3 finn_kvadratrotord.py 10 1000 norsk
# $ ./python3 finn_kvadratrotord.py 1000 1000000 engelsk
from num2words import num2words
import sys
def sjekk_tall(tall, tallord_språk):
# Gjør om tallet til tallord med num2words-modulen
tall_ord = num2words(tall, lang=tallord_språk)
# Vi ønsker bare å telle vanlige bokstaver i tallordet, ikke bindestrek og comma
gyldige_tegn = [character for character in tall_ord if character.isalpha()]
antall_bokstaver = len(''.join(gyldige_tegn))
# Er det et kvadratord?
if int(tall) == antall_bokstaver ** 2:
print(f"{tall_ord} ({tall}) er et kvadratrotord fordi {antall_bokstaver} er kvadratroten av {tall}")
try:
nedre = int(sys.argv[1])
øvre = int(sys.argv[2])
språk = sys.argv[3]
if språk == 'norsk':
tallord_språk = 'no'
elif språk == 'engelsk':
tallord_språk = 'en'
except:
print("Du må gi en nedre og øvre grense å teste mot, og et språk, for eksempel slik: $ ./python3 finn_kvadratrotord.py 10 1000 norsk\n")
print(f"\nSjekker for kvadratrotord mellom {nedre} og {øvre}{språk}:\n")
for i in range(nedrevre,1):
sjekk_tall(i, tallord_språk)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment