Liczba narcystyczna to -cyfrowa liczba naturalna, która jest równa sumie swoich cyfr podniesionych do potęgi . Napisz funkcję czy_narcystyczna(liczba), sprawdzającą, czy dana liczba jest liczbą narcystyczną. Działanie swojego programu przetestuj dla liczby 370.
W celu podniesienia liczby do potęgi, użyj operatora **, np. polecenie: a ** b podniesie liczbę a do potęgi b.
Przykład:
Kolejne liczby narcystyczne: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407 ...
jest liczbą narcystyczną, ponieważ:
jest liczbą narcystyczną, ponieważ:
Specyfikacja:
Dane:
liczba – sprawdzana liczba; liczba naturalna
Wynik:
Program wypisze komunikat Podana liczba jest narcystyczna! lub Podana liczba nie jest narcystyczna
RjyWmfPW6ZDtl
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Twoje zadanie: Zdefiniowanie funkcji czy_narcystyczna(), sprawdzającej, czy podana liczba spełnia warunki liczby narcystycznej.
Linia 1. def czy podkreślnik narcystyczna otwórz nawias okrągły liczba zamknij nawias okrągły dwukropek.
Linia 3. kratka Tu uzupełnij swój kod.
Linia 5. return None.
Linia 8. liczba znak równości 370.
Linia 10. if czy podkreślnik narcystyczna otwórz nawias okrągły liczba zamknij nawias okrągły dwukropek.
Linia 11. print otwórz nawias okrągły apostrof Podana liczba jest narcystyczna wykrzyknik apostrof zamknij nawias okrągły.
Linia 12. else dwukropek.
Linia 13. print otwórz nawias okrągły apostrof Podana liczba nie jest narcystyczna apostrof zamknij nawias okrągły.
Linia 14. at at at.
Linia 15. language znak równości python37.
Linia 16. at at at.
Linia 17. Zdefiniowanie funkcji otwórz nawias ostrokątny code zamknij nawias ostrokątny czy podkreślnik narcystyczna otwórz nawias okrągły zamknij nawias okrągły otwórz nawias ostrokątny prawy ukośnik code zamknij nawias ostrokątny przecinek sprawdzającej przecinek czy podana liczba spełnia warunki liczby narcystycznej kropka.
Linia 18. at at at.
Linia 19. at at at.
Linia 20. at at at.
Linia 21. kratka wykrzyknik prawy ukośnik usr prawy ukośnik bin prawy ukośnik python3 kropka 7.
Linia 22. import sys.
Linia 23. podkreślnik podkreślnik TF znak równości open otwórz nawias okrągły 3 przecinek apostrof w apostrof zamknij nawias okrągły.
Linia 24. def podkreślnik pt otwórz nawias okrągły t zamknij nawias okrągły dwukropek.
Linia 25. print otwórz nawias okrągły str otwórz nawias okrągły t zamknij nawias okrągły przecinek file znak równości podkreślnik podkreślnik TF zamknij nawias okrągły.
Linia 27. expected znak równości cudzysłów cudzysłów cudzysłów.
Linia 28. Podana liczba jest narcystyczna wykrzyknik.
Linia 29. cudzysłów cudzysłów cudzysłów.
Linia 31. if sys kropka stdin kropka read otwórz nawias okrągły zamknij nawias okrągły kropka strip otwórz nawias okrągły zamknij nawias okrągły znak równości znak równości expected kropka strip otwórz nawias okrągły zamknij nawias okrągły dwukropek.
Linia 32. podkreślnik pt otwórz nawias okrągły 0 zamknij nawias okrągły.
def czy_narcystyczna(liczba):
# Tu uzupełnij swój kod
return None
liczba = 370
if czy_narcystyczna(liczba):
print('Podana liczba jest narcystyczna!')
else:
print('Podana liczba nie jest narcystyczna')
@@@
language=python37
@@@
Zdefiniowanie funkcji <code>czy_narcystyczna()</code>, sprawdzającej, czy podana liczba spełnia warunki liczby narcystycznej.
@@@
@@@
@@@
#!/usr/bin/python3.7
import sys
__TF = open(3,'w')
def _pt(t):
print(str(t), file=__TF)
expected = """
Podana liczba jest narcystyczna!
"""
if sys.stdin.read().strip() == expected.strip():
_pt(0)
Przykładowe rozwiązanie zadania
Linia 1. kratka Oblicz liczbe cyfr danej liczby.
Linia 2. def liczba podkreślnik cyfr otwórz nawias okrągły liczba zamknij nawias okrągły dwukropek.
Linia 3. wynik znak równości 0.
Linia 5. while liczba zamknij nawias ostrokątny 0 dwukropek.
Linia 6. liczba prawy ukośnik prawy ukośnik znak równości 10.
Linia 7. wynik plus znak równości 1.
Linia 9. return wynik.
Linia 11. kratka Sprawdz przecinek czy dana liczba jest narcystyczna.
Linia 12. def czy podkreślnik narcystyczna otwórz nawias okrągły liczba zamknij nawias okrągły dwukropek.
Linia 13. liczba podkreślnik cyfr podkreślnik liczby znak równości liczba podkreślnik cyfr otwórz nawias okrągły liczba zamknij nawias okrągły.
Linia 14. suma znak równości 0.
Linia 16. for i in range otwórz nawias okrągły liczba podkreślnik cyfr podkreślnik liczby zamknij nawias okrągły dwukropek.
Linia 17. cyfra znak równości otwórz nawias okrągły liczba prawy ukośnik prawy ukośnik otwórz nawias okrągły 10 asterysk asterysk i zamknij nawias okrągły zamknij nawias okrągły procent 10.
Linia 18. suma plus znak równości cyfra asterysk asterysk liczba podkreślnik cyfr podkreślnik liczby.
Linia 20. return suma znak równości znak równości liczba.
Linia 23. liczba znak równości 370.
Linia 25. if czy podkreślnik narcystyczna otwórz nawias okrągły liczba zamknij nawias okrągły dwukropek.
Linia 26. print otwórz nawias okrągły apostrof Podana liczba jest narcystyczna wykrzyknik apostrof zamknij nawias okrągły.
Linia 27. else dwukropek.
Linia 28. print otwórz nawias okrągły apostrof Podana liczba nie jest narcystyczna apostrof zamknij nawias okrągły.
# Oblicz liczbe cyfr danej liczby
def liczba_cyfr(liczba):
wynik = 0
while liczba > 0:
liczba //= 10
wynik += 1
return wynik
# Sprawdz, czy dana liczba jest narcystyczna
def czy_narcystyczna(liczba):
liczba_cyfr_liczby = liczba_cyfr(liczba)
suma = 0
for i in range(liczba_cyfr_liczby):
cyfra = (liczba // (10 ** i)) % 10
suma += cyfra ** liczba_cyfr_liczby
return suma == liczba
liczba = 370
if czy_narcystyczna(liczba):
print('Podana liczba jest narcystyczna!')
else:
print('Podana liczba nie jest narcystyczna')
21
Ćwiczenie 2
Zdefiniuj funkcję czy_liczby_zaprzyjaznione(lista), sprawdzającą, które pary z listy par liczb, zapisanych jako krotki, to liczby zaprzyjaźnione.
lista – pary liczb do sprawdzania; lista krotek dwuelementowych
Wynik:
Funkcja zwraca listę wartości typu bool, prezentującą, które z par liczb to liczby zaprzyjaźnione.
R6qOqO7N1URp7
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Twoje zadanie: Program sprawdza, które z par liczb spełniają warunki liczb zaprzyjaźnionych.
Linia 1. def czy podkreślnik liczby podkreślnik zaprzyjaznione otwórz nawias okrągły lista zamknij nawias okrągły dwukropek.
Linia 3. kratka Tu uzupełnij kod.
Linia 5. return None.
Linia 7. wynik znak równości czy podkreślnik liczby podkreślnik zaprzyjaznione otwórz nawias okrągły otwórz nawias kwadratowy otwórz nawias okrągły 220 przecinek 284 zamknij nawias okrągły przecinek otwórz nawias okrągły 33 przecinek 451 zamknij nawias okrągły przecinek otwórz nawias okrągły 128 przecinek 363 zamknij nawias okrągły zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 8. print otwórz nawias okrągły wynik zamknij nawias okrągły.
Linia 10. wynik znak równości czy podkreślnik liczby podkreślnik zaprzyjaznione otwórz nawias okrągły otwórz nawias kwadratowy otwórz nawias okrągły 33 przecinek 451 zamknij nawias okrągły przecinek otwórz nawias okrągły 220 przecinek 284 zamknij nawias okrągły przecinek otwórz nawias okrągły 128 przecinek 363 zamknij nawias okrągły zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 11. print otwórz nawias okrągły wynik zamknij nawias okrągły.
Linia 12. at at at.
Linia 13. language znak równości python37.
Linia 14. at at at.
Linia 15. Program sprawdza przecinek które z par liczb spełniają warunki liczb zaprzyjaźnionych kropka.
Linia 16. at at at.
Linia 17. at at at.
Linia 18. at at at.
Linia 19. kratka wykrzyknik prawy ukośnik usr prawy ukośnik bin prawy ukośnik python3 kropka 7.
Linia 20. import sys.
Linia 21. podkreślnik podkreślnik TF znak równości open otwórz nawias okrągły 3 przecinek apostrof w apostrof zamknij nawias okrągły.
Linia 22. def podkreślnik pt otwórz nawias okrągły t zamknij nawias okrągły dwukropek.
Linia 23. print otwórz nawias okrągły str otwórz nawias okrągły t zamknij nawias okrągły przecinek file znak równości podkreślnik podkreślnik TF zamknij nawias okrągły.
Linia 25. expected znak równości cudzysłów cudzysłów cudzysłów.
Linia 26. otwórz nawias kwadratowy True przecinek False przecinek False zamknij nawias kwadratowy.
Linia 27. otwórz nawias kwadratowy False przecinek True przecinek False zamknij nawias kwadratowy.
Linia 28. cudzysłów cudzysłów cudzysłów.
Linia 30. if sys kropka stdin kropka read otwórz nawias okrągły zamknij nawias okrągły kropka strip otwórz nawias okrągły zamknij nawias okrągły znak równości znak równości expected kropka strip otwórz nawias okrągły zamknij nawias okrągły dwukropek.
Linia 31. podkreślnik pt otwórz nawias okrągły 0 zamknij nawias okrągły.
def czy_liczby_zaprzyjaznione(lista):
# Tu uzupełnij kod
return None
wynik = czy_liczby_zaprzyjaznione([(220, 284), (33, 451), (128, 363)])
print(wynik)
wynik = czy_liczby_zaprzyjaznione([(33, 451), (220, 284), (128, 363)])
print(wynik)
@@@
language=python37
@@@
Program sprawdza, które z par liczb spełniają warunki liczb zaprzyjaźnionych.
@@@
@@@
@@@
#!/usr/bin/python3.7
import sys
__TF = open(3,'w')
def _pt(t):
print(str(t), file=__TF)
expected = """
[True, False, False]
[False, True, False]
"""
if sys.stdin.read().strip() == expected.strip():
_pt(0)
Linia 1. def dzielniki podkreślnik wlasciwe otwórz nawias okrągły liczba zamknij nawias okrągły dwukropek.
Linia 2. if liczba znak równości znak równości 0 dwukropek.
Linia 3. return None.
Linia 5. lista znak równości otwórz nawias kwadratowy zamknij nawias kwadratowy.
Linia 6. polowka znak równości liczba prawy ukośnik prawy ukośnik 2.
Linia 8. for i in range otwórz nawias okrągły 1 przecinek polowka plus 1 zamknij nawias okrągły dwukropek.
Linia 9. if liczba procent i znak równości znak równości 0 dwukropek.
Linia 10. lista kropka append otwórz nawias okrągły i zamknij nawias okrągły.
Linia 12. return lista.
Linia 15. def czy podkreślnik liczby podkreślnik zaprzyjaznione otwórz nawias okrągły lista zamknij nawias okrągły dwukropek.
Linia 16. lista podkreślnik wynikowa znak równości otwórz nawias kwadratowy zamknij nawias kwadratowy.
Linia 18. for krotka in lista dwukropek.
Linia 19. liczba1 przecinek liczba2 znak równości krotka.
Linia 20. dzielniki podkreślnik wlasciwe podkreślnik liczby podkreślnik 1 znak równości dzielniki podkreślnik wlasciwe otwórz nawias okrągły liczba1 zamknij nawias okrągły.
Linia 21. dzielniki podkreślnik wlasciwe podkreślnik liczby podkreślnik 2 znak równości dzielniki podkreślnik wlasciwe otwórz nawias okrągły liczba2 zamknij nawias okrągły.
Linia 23. if liczba1 znak równości znak równości sum otwórz nawias okrągły dzielniki podkreślnik wlasciwe podkreślnik liczby podkreślnik 2 zamknij nawias okrągły and liczba2 znak równości znak równości sum otwórz nawias okrągły dzielniki podkreślnik wlasciwe podkreślnik liczby podkreślnik 1 zamknij nawias okrągły dwukropek.
Linia 24. lista podkreślnik wynikowa kropka append otwórz nawias okrągły True zamknij nawias okrągły.
Linia 25. else dwukropek.
Linia 26. lista podkreślnik wynikowa kropka append otwórz nawias okrągły False zamknij nawias okrągły.
Linia 28. return lista podkreślnik wynikowa.
Linia 31. wynik znak równości czy podkreślnik liczby podkreślnik zaprzyjaznione otwórz nawias okrągły otwórz nawias kwadratowy otwórz nawias okrągły 220 przecinek 284 zamknij nawias okrągły przecinek otwórz nawias okrągły 33 przecinek 451 zamknij nawias okrągły przecinek otwórz nawias okrągły 128 przecinek 363 zamknij nawias okrągły zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 32. print otwórz nawias okrągły wynik zamknij nawias okrągły.
Linia 34. wynik znak równości czy podkreślnik liczby podkreślnik zaprzyjaznione otwórz nawias okrągły otwórz nawias kwadratowy otwórz nawias okrągły 33 przecinek 451 zamknij nawias okrągły przecinek otwórz nawias okrągły 220 przecinek 284 zamknij nawias okrągły przecinek otwórz nawias okrągły 128 przecinek 363 zamknij nawias okrągły zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 35. print otwórz nawias okrągły wynik zamknij nawias okrągły.
def dzielniki_wlasciwe(liczba):
if liczba == 0:
return None
lista = []
polowka = liczba // 2
for i in range(1, polowka + 1):
if liczba % i == 0:
lista.append(i)
return lista
def czy_liczby_zaprzyjaznione(lista):
lista_wynikowa = []
for krotka in lista:
liczba1, liczba2 = krotka
dzielniki_wlasciwe_liczby_1 = dzielniki_wlasciwe(liczba1)
dzielniki_wlasciwe_liczby_2 = dzielniki_wlasciwe(liczba2)
if liczba1 == sum(dzielniki_wlasciwe_liczby_2) and liczba2 == sum(dzielniki_wlasciwe_liczby_1):
lista_wynikowa.append(True)
else:
lista_wynikowa.append(False)
return lista_wynikowa
wynik = czy_liczby_zaprzyjaznione([(220, 284), (33, 451), (128, 363)])
print(wynik)
wynik = czy_liczby_zaprzyjaznione([(33, 451), (220, 284), (128, 363)])
print(wynik)
31
Ćwiczenie 3
Napisz program wyszukujący liczby bliźniacze z podanego zakresu. Program powinien wypisywać tylko te pary liczb bliźniaczych, w których jedna lub obie liczby kończą się cyfrą 3. Każdą parę liczb wypisuj w nowej linii, oddzielając liczby w parze znakiem spacji. Przetestuj swój program dla przedziału .
Specyfikacja:
Dane:
a - początek sprawdzanego przedziału; liczba naturalna
b - koniec sprawdzanego przedziału; liczba naturalna
Wynik:
Program wypisze w kolejnych liniach pary liczb bliźniaczych, z przedziału , takich, że chociaż jedna z nich kończy się cyfrą 3. Pary powinny być oddzielone znakiem spacji.
R11xgCqz4MVA1
Wymyśl pytanie na kartkówkę związane z tematem materiału.
Wymyśl pytanie na kartkówkę związane z tematem materiału.
Twoje zadanie: Program ma wyszukiwać pary liczb bliźniaczych w przedziale (2,100). Wypisywane powinny być te pary, w których jedna lub dwie z liczb kończą się cyfrą 3.
Linia 1. a znak równości 2.
Linia 2. b znak równości 100.
Linia 4. liczby podkreślnik pierwsze znak równości otwórz nawias kwadratowy zamknij nawias kwadratowy.
Linia 6. for i in range otwórz nawias okrągły a przecinek b zamknij nawias okrągły dwukropek.
Linia 7. kratka Tu uzupełnij kod.
Linia 9. for i in range otwórz nawias okrągły len otwórz nawias okrągły liczby podkreślnik pierwsze zamknij nawias okrągły minus 1 zamknij nawias okrągły dwukropek.
Linia 10. kratka Tu uzupełnij kod.
Linia 11. at at at.
Linia 12. language znak równości python37.
Linia 13. at at at.
Linia 14. Program ma wyszukiwać pary liczb bliźniaczych w przedziale otwórz nawias ostrokątny math zamknij nawias ostrokątny otwórz nawias ostrokątny mo fence znak równości cudzysłów false cudzysłów stretchy znak równości cudzysłów false cudzysłów zamknij nawias ostrokątny ⟨ otwórz nawias ostrokątny prawy ukośnik mo zamknij nawias ostrokątny otwórz nawias ostrokątny mn zamknij nawias ostrokątny 2 otwórz nawias ostrokątny prawy ukośnik mn zamknij nawias ostrokątny otwórz nawias ostrokątny mo zamknij nawias ostrokątny przecinek otwórz nawias ostrokątny prawy ukośnik mo zamknij nawias ostrokątny otwórz nawias ostrokątny mn zamknij nawias ostrokątny 100 otwórz nawias ostrokątny prawy ukośnik mn zamknij nawias ostrokątny otwórz nawias ostrokątny mo fence znak równości cudzysłów false cudzysłów stretchy znak równości cudzysłów false cudzysłów zamknij nawias ostrokątny ⟩ otwórz nawias ostrokątny prawy ukośnik mo zamknij nawias ostrokątny otwórz nawias ostrokątny prawy ukośnik math zamknij nawias ostrokątny kropka Wypisywane powinny być te pary przecinek w których jedna lub dwie z liczb kończą się cyfrą 3 kropka.
Linia 15. at at at.
Linia 16. at at at.
Linia 17. at at at.
Linia 18. kratka wykrzyknik prawy ukośnik usr prawy ukośnik bin prawy ukośnik python3 kropka 7.
Linia 19. import sys.
Linia 20. podkreślnik podkreślnik TF znak równości open otwórz nawias okrągły 3 przecinek apostrof w apostrof zamknij nawias okrągły.
Linia 21. def podkreślnik pt otwórz nawias okrągły t zamknij nawias okrągły dwukropek.
Linia 22. print otwórz nawias okrągły str otwórz nawias okrągły t zamknij nawias okrągły przecinek file znak równości podkreślnik podkreślnik TF zamknij nawias okrągły.
Linia 24. expected znak równości cudzysłów cudzysłów cudzysłów.
Linia 25. 3 5.
Linia 26. 11 13.
Linia 27. 41 43.
Linia 28. 71 73.
Linia 29. cudzysłów cudzysłów cudzysłów.
Linia 31. if sys kropka stdin kropka read otwórz nawias okrągły zamknij nawias okrągły kropka strip otwórz nawias okrągły zamknij nawias okrągły znak równości znak równości expected kropka strip otwórz nawias okrągły zamknij nawias okrągły dwukropek.
Linia 32. podkreślnik pt otwórz nawias okrągły 0 zamknij nawias okrągły.
a = 2
b = 100
liczby_pierwsze = []
for i in range(a, b):
# Tu uzupełnij kod
for i in range(len(liczby_pierwsze) - 1):
# Tu uzupełnij kod
@@@
language=python37
@@@
Program ma wyszukiwać pary liczb bliźniaczych w przedziale <math> <mo fence="false" stretchy="false">⟨</mo> <mn>2</mn> <mo>,</mo> <mn>100</mn> <mo fence="false" stretchy="false">⟩</mo></math>. Wypisywane powinny być te pary, w których jedna lub dwie z liczb kończą się cyfrą 3.
@@@
@@@
@@@
#!/usr/bin/python3.7
import sys
__TF = open(3,'w')
def _pt(t):
print(str(t), file=__TF)
expected = """
3 5
11 13
41 43
71 73
"""
if sys.stdin.read().strip() == expected.strip():
_pt(0)
Przykładowe rozwiązanie zadania:
Linia 1. a znak równości 2.
Linia 2. b znak równości 100.
Linia 4. liczby podkreślnik pierwsze znak równości otwórz nawias kwadratowy zamknij nawias kwadratowy.
Linia 6. kratka Znajdz wszystkie liczby pierwsze w podanym zakresie.
Linia 7. for i in range otwórz nawias okrągły a przecinek b plus 1 zamknij nawias okrągły dwukropek.
Linia 8. czy podkreślnik pierwsza znak równości True.
Linia 9. for j in range otwórz nawias okrągły 2 przecinek i zamknij nawias okrągły dwukropek.
Linia 10. if i procent j znak równości znak równości 0 dwukropek.
Linia 11. czy podkreślnik pierwsza znak równości False.
Linia 12. break.
Linia 14. if czy podkreślnik pierwsza dwukropek.
Linia 15. liczby podkreślnik pierwsze kropka append otwórz nawias okrągły i zamknij nawias okrągły.
Linia 17. kratka Sprawdz przecinek ktore z liczb pierwszych sa blizniacze i spelniaja warunki.
Linia 18. for i in range otwórz nawias okrągły len otwórz nawias okrągły liczby podkreślnik pierwsze zamknij nawias okrągły minus 1 zamknij nawias okrągły dwukropek.
Linia 19. if liczby podkreślnik pierwsze otwórz nawias kwadratowy i plus 1 zamknij nawias kwadratowy minus liczby podkreślnik pierwsze otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości 2 dwukropek.
Linia 20. if liczby podkreślnik pierwsze otwórz nawias kwadratowy i plus 1 zamknij nawias kwadratowy procent 10 znak równości znak równości 3 or liczby podkreślnik pierwsze otwórz nawias kwadratowy i zamknij nawias kwadratowy procent 10 znak równości znak równości 3 dwukropek.
Linia 21. print otwórz nawias okrągły str otwórz nawias okrągły liczby podkreślnik pierwsze otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias okrągły plus cudzysłów cudzysłów plus str otwórz nawias okrągły liczby podkreślnik pierwsze otwórz nawias kwadratowy i plus 1 zamknij nawias kwadratowy zamknij nawias okrągły zamknij nawias okrągły.
a = 2
b = 100
liczby_pierwsze = []
# Znajdz wszystkie liczby pierwsze w podanym zakresie
for i in range(a, b + 1):
czy_pierwsza = True
for j in range(2, i):
if i % j == 0:
czy_pierwsza = False
break
if czy_pierwsza:
liczby_pierwsze.append(i)
# Sprawdz, ktore z liczb pierwszych sa blizniacze i spelniaja warunki
for i in range(len(liczby_pierwsze) - 1):
if liczby_pierwsze[i + 1] - liczby_pierwsze[i] == 2:
if liczby_pierwsze[i + 1] % 10 == 3 or liczby_pierwsze[i] % 10 == 3:
print(str(liczby_pierwsze[i]) + " " + str(liczby_pierwsze[i + 1]))