Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
1 / 1 / 0
Регистрация: 02.01.2020
Сообщений: 38

Массив: Определить, сколько чисел в массиве являются степенью числа A.

01.10.2020, 23:00. Показов 3527. Ответов 7

Студворк — интернет-сервис помощи студентам
Дан массив из N целых чисел . Определить, сколько чисел в массиве являются степенью числа A. Является ли число B степенью числа A

В первой строке вводится N - количество чисел в массиве .

Во второй строке вводится массив значений B.

В третьей строке вводится число A .

Мой код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def is_power(a, b):
    if a == 1:
        return(1)
    elif a % b:
        return(0)
    else:
        return is_power(a // b, b)
 
 
def main():
    n=int(input())
    a = [int(i) for i in input().split()]
    stepen=int(input())
    summma=0
    for i in range(n):
        summma=summma+(is_power(a[i], stepen))
    print(summma)
 
 
 
if __name__ == '__main__':
    main()
Проблема в том, что при вводе больших значений например:
27
8273 1 37 2999 73210 2 9980 10 81585 0 714 7 842 40355 373 117649 35 841 49 604 96498 7 346 59 92657 91552 442
7
Выдается: "RecursionError: maximum recursion depth exceeded in comparison" и "[Previous line repeated 994 more times]"
Как это можно исправить или изменить код?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.10.2020, 23:00
Ответы с готовыми решениями:

Определить, сколько чисел являются степенью числа 2
всем здрасти помогите сделать два задания я далек от паскаля но именно множества задали на паскале по дискретке а я только учусь...

В массиве посчитать количество чисел, которые являются степенью числа 5
Дан линейный массив A, содержащий целые числа. Определить: посчитать количество чисел, которые являются ...

Дан массив целых чисел. Определить все уникальные числа в массиве и сколько раз каждое из них встречается в массиве.
Написать программу для решения следующей задачи. Дан массив целых чисел. Определить все уникальные числа в массиве и сколько раз каждое из...

7
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
02.10.2020, 06:47
anakas,
Python
1
2
3
4
5
import math
N = int(input())
B = list(map(int,input().split()))
A = int(input())
print(sum([1 for t in B if t > 0  and not math.log(t,A)%1]))
Добавлено через 2 минуты
Для положительных чисел

Добавлено через 20 минут
Для любых целых чисел
Python
1
2
3
4
5
6
7
8
9
10
11
import math
N = int(input())
B = list(map(int,input().split()))
Bmax = max(max(B),abs(min(B)))
A = int(input())
if A not in [-1,0,1] :
    st = int(math.log(Bmax,abs(A))) + 2
    Ast = [A**i for i in range(st)]
    print(sum([1 for t in B if t != 0  and t in Ast]))
else :
    print(0)
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
02.10.2020, 07:51
Откажись от рекурсии:
Python
1
2
3
4
5
6
def is_power(a, b):
     while(a>1):
         if a%b!=0:
            return False
         a=a//b
     return True
Gdez, использование в целочисленных задачах функции, возвращающей float...
3
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
02.10.2020, 07:53
еще бы ограничения на входные данные знать...
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
02.10.2020, 08:13
Лучший ответ Сообщение было отмечено anakas как решение

Решение

В одном коде обернуто в int
В другом есть %
Есть "камни" в этом?

Добавлено через 43 секунды
Поэтому пришлось использовать math

Добавлено через 2 минуты
Catstail, можно было, конечно, счетчиком найти степень, но у ТС не указаны граничные условия. Но есть превышение... Возможно потом по времени "вылетит"

Добавлено через 14 минут
Catstail,
Gdez, использование в целочисленных задачах функции, возвращающей float...
Исправил
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
N = int(input())
B = list(map(int,input().split()))
Bmax = max(max(B),abs(min(B)))
A = int(input())
Ast = []
k = 1
while abs(k) < Bmax + 1 :
    Ast.append(k)
    k *= A
print(Ast)
if A not in [-1,0,1] :
    print(sum([1 for t in B if t != 0  and t in Ast]))
else :
    print(0)
2
1 / 1 / 0
Регистрация: 02.01.2020
Сообщений: 38
02.10.2020, 12:43  [ТС]
Всем спасибо, за предоставленные решения
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
02.10.2020, 18:44

Не по теме:

Цитата Сообщение от Catstail Посмотреть сообщение
Откажись от рекурсии:
И это сказал Catstail???
Я в шоке. Не верю!!!


1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
02.10.2020, 18:58

Не по теме:

iSmokeJC, что делать... Если не хватает стекового пространства, приходится

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.10.2020, 18:58
Помогаю со студенческими работами здесь

Дан файл, элементами которого являются числа Определить сколько чисел в файле являются числами ряда Фиббоначи
Дан файл, элементами которого являются числа Определить сколько чисел в файле являются числами ряда Фиббоначи.Заранее спс

IsPowerN. Найти сколько чисел являются степенью N
Написал прогу. Но не разбираюсь почему не возращает true/fasle, т.е Пишу степень, потом 10 чисел, но выводит в конце всё равно 0 Нужно...

В целочисленном массиве найти и напечатать те элементы, которые являются степенью 2. Написать функцию, проверяющую, является ли число степенью 2.
В целочисленном массиве найти и напечатать те элементы, которые являются степенью 2. Написать функцию, проверяющую, является ли число...

Даны натуральные числа n,m(n<=). Определить,сколько из чисел n,n+1,.,m являются номерами високосных годов
Даны натуральные числа n,m(n&lt;=). Определить,сколько из чисел n,n+1,...,m являются номерами високосных годов. Добавлено через 1 час 1...

Найдите сумму первых n натуральных чисел, которые являются степенью числа 3
Найдите сумму первых n натуральных чисел, которые являются степенью числа 3.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru