|
# тізімді құру, # өсуі бойынша сұрыптау
|
бет | 4/4 | Дата | 07.02.2022 | өлшемі | 80,09 Kb. | | #92960 |
| Байланысты: алгоритм # өсуі бойынша сұрыптау a = [] for i in range(15): a.append(randint(1, 50)) a.sort() print(a) # ізделінді сан value = int(input()) mid = len(a) // 2 low = 0 high = len(a) - 1 while a[mid] != value and low <= high: if value > a[mid]: low = mid + 1 else: high = mid - 1 mid = (low + high) // 2 if low > high: print("No value") else: print("ID =", mid) - Санның бөлінгіштері арқылы оның жай немесе құрама сан екенін анықтау.
- Жай сан – бұл бірден үлкен 1-ге және өзіне ғана бөлінетін сан.
- Мысалы, 5 саны жай сан, себебі оның бөлгіштері 1 және 5.
- 10 саны құрама, себебі оның бөлгіштері 1, 2, 5 және 10.
Алгоритмде қарастырылатын сандар берілген санның квадрат түбірінен кіші немесе тең санға дейін жүргізіледі. - Егер осы аралықтағы бір сан берілген санды қалдықсыз бөлетін болса, онда сан құрама, ал ондай бөлгіш табылмаса жай сан болып табылады.
from math import sqrt n = int(input()) if n < 2: print(«енгізілген сан 1 үлкен болуы тиіс") quit() elif n == 2: print(«жай сан") quit() i = 2 # алғашқы бөлгіш limit = int(math.sqrt(n)) while i <= limit: if n % i == 0: print(«құрама сан") i += 1 # келесі бөлгішті алу print(«жай сан") Сан берілген. Санның цифрларының қосындысы мен көбейтіндісін тап. - Мысалы:
- 475
- Қосындысы: 4 + 7+5 = 16.
- Көбейтіндісі: 4*7*5 = 140.
n – берілген сан, sum –цифрларының қосындысы, ал mult – көбейтіндісі. Алгоритм: 1.suma мәні ноль. 2. mult мәні 1. 3. Әзірше n нолден үлкен болғанша: - n-ді 10-ға бөліп, оның соңғы цифрын алу.
- алынған цифрды қосындыға қосып, көбейтіндіні сонша есе арттыру керек. - санның соңғы разрядына 10 бүтін бөлу арқылы арылу қажет.
a = abs(int(input())) suma = 0 mult = 1 while a > 0: digit = a % 10 suma += digit mult *= digit a = a // 10 print(«Қосынды:", suma) print(«Көбейтінді:", mult) n = input() print(n,type(n)) suma = 0 mult = 1 for i in n: suma += int(i) mult *= int(i) print(suma) print(mult) n = int(input()) factorial = 1 while n > 1: factorial *= n n -= 1 print(factorial) n = int(input()) factorial = 1 for i in range(2, n+1): factorial *= I print(factorial) def fac(n): if n == 0: return 1 return fac(n-1) * n print(fac(5)) math.factorial(10) Таңдап сұрыптау - Алгоритм: өңделмеген аралықта ең кіші элементті тауып оны бірінші элементпен ауыстыру.
- Келесі қадамда өңделмеген аралық бір элементке кемиді.
1.Тізімнен ең кіші элементті табу. 2.Осы элемент пен бірінші элементтердің орнын ауыстыр. 3. Енді кіші элементті іздеу екінші элементтен басталады. 4.Элементті іздеу және ауыстыру тізімнің соңына дейін жүр гізіледі. from random import randint def sel_sort(array): for i in range(len(array) - 1): m = i j = i + 1 while j < len(array): if array[j] < array[m]: m = j j = j + 1 array[i], array[m] = array[m], array[i] a = [] for i in range(10): a.append(randint(1, 99)) print(a) sel_sort(a) print(a)
Достарыңызбен бөлісу: |
|
|