Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # nem mukodik teljesen!!
- import sys
- # Megnézi, hogy az adott szám prím-e
- def is_prime(number: int) -> bool:
- if number == 1:
- return False
- if number == 2:
- return True
- for divisor in range(2, int(number**0.5)+1):
- if number % divisor == 0:
- return False
- return True
- # Megnézi, hogy az adott listában mik a prímek, majd azokat egy új listába
- # rakja, törli az ismétlődőek és sorba rakja
- def get_primes(number_list: list) -> list:
- primes_only = [] # Ide kerülnek a prímek
- for number in number_list:
- if is_prime(number):
- # Ha prím, akkor hozzáfűzi
- primes_only.append(number)
- # Rendezem növekvőbe
- primes_only.sort()
- # Kitörlöm az ismétlődő elemeket (ezt mashogy is meglehet,
- # de pythonban ez ilyen egyszerű és gyors, ha megjegyzed)
- primes_only = list(dict.fromkeys(primes_only))
- return primes_only # Visszaadom az új listát
- def main():
- # data-ban lesznek a számlisták
- data = []
- # beolvasom
- with open(sys.argv[1], "r") as file:
- for line in file:
- # levágom a végéről a \n-t, majd listává alakítom szóközök mentén
- line = line.strip().split()
- # minden elemet számmá alakítok a listában, majd hozzáfűzöm a datahoz
- data.append([int(number) for number in line])
- # bejárom a data listat
- for array in data:
- # csinálok az adott listából egy prím only listat
- primes_only_list = get_primes(array)
- # ez a változó fogja tartalmazni a kiíratott sor tartalmat
- string_to_write = ""
- # Ha üres a lista, azaz nincs benne prím:
- if len(primes_only_list) == 0:
- # akkor "NOTHING"-ot tárolok el benne
- string_to_write = "NOTHING"
- else:
- # Ha nem, akkor bejárom a listát, majd
- for prime in primes_only_list:
- # "(adott prím), " formában hozzáfűzöm a kiíratós változóhoz
- string_to_write += f"{prime}, "
- # Ha nothing az értéke, akkor kiíratom, ha nem:
- if string_to_write != "NOTHING":
- # akkor az utolsó 2 karaktert levágom róla, ez a sor végi felesleges: ", "
- print(string_to_write[:-2])
- else:
- print(string_to_write)
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment