Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
[Вернуться к задаче]   1
  1  Сташевский Александр Витальевич, 26 октября 2025 г. 13:00:47
     Для тех кто не понял, число Смита это такое число сумма цифр которго равно сумме цифр ВСЕХ его простых делителей (даже повторяющихся)
  2  Руслан Истамкулов, 12 января 2025 г. 22:32:16
     def sum_of_digits(n): return sum(int(digit) for digit in str(n)) def prime_factors(n): factors = [] f = 2 while f * f <= n: while n % f == 0: factors.append(f) n //= f f += 1 if n > 1: factors.append(n) return factors nums = list(map(int, input().split())) result = "" for num in nums: s = sum_of_digits(num) factors = prime_factors(num) m = sum(sum_of_digits(factor) for factor in factors) if m == s: result += "1" else: result += "0" print(result)
  3  Руслан Истамкулов, 12 января 2025 г. 22:26:35
     #include <iostream> #include <vector> #include <string> #include <numeric> using namespace std; // Функция для вычисления суммы цифр числа int sum_of_digits(int n) { int sum = 0; while (n > 0) { sum += n % 10; n /= 10; } return sum; } int main() { vector<int> nums; int num; // Чтение чисел for (int i = 0; i < 20 && cin >> num; ++i) { nums.push_back(num); } string result = ""; // Строка для хранения результатов for (int n : nums) { int original_n = n; int s = sum_of_digits(n); // Сумма цифр исходного числа int m = 0; int f = 2; // Разложение на простые множители while (n > 1) { while (n % f == 0) { m += sum_of_digits(f); // Добавляем сумму цифр простого множителя n /= f; } f++; } // Добавляем результат в строку if (m == s) { result += "1
  4  Агарков Алексей Ильич, 30 октября 2024 г. 11:40:27
     Что во 2 тесте?
  5  Сергей Глазков, 27 октября 2024 г. 0:17:55
     Я разобрался. Оставлю здесь этот тест, вдруг кому-нибудь поможет. Ввод: 99985 4 17 Вывод: 110
  6  Сергей Глазков, 26 октября 2024 г. 23:44:35
     Здравствуйте! Подскажите пожалуйста, что в тесте 7? Я уверен в своей программе на 100%, загуглил числа Смита, проверил практически на всех, все быстро и верно работает. Программа читает числа из строки, а затем анализирует их. Что там за магический тест?
  7  Хазанчук Александр Михайлович, 27 ноября 2023 г. 17:05:41
     Числа Смита - составные, а 17 - нет.
  8  Боглан, 15 января 2022 г. 1:53:28
     Проверяйте на простоту число, если чисто простое, как 17, выводите 0 в любом случае
  9  Измайлович Денис, 10 декабря 2020 г. 17:24:37
     Составное число — натуральное число, имеющее делители, отличные от единицы и самого себя.
  10  Карпеев Тимофей Николаевич, 01 мая 2020 г. 19:57:00
     получается, надо дополнительно проверять, является ли число простым? (это про тест с числом 17, которое простое). и если оно простое, то ответ 0...?
  11  Имаев Артём, 02 октября 2018 г. 22:58:26
     понял) слово "составное" очень важно для задачи)
  12  Имаев Артём, 02 октября 2018 г. 22:57:00
     Почему у 17 ответ 0? У 17 есть один простой множитель 17. Значит сумма цифр числа равняется сумме цифр всех его простых сомножителей. Может быть для этой задачи под "сомножителями" подразумевается что-то другое?
 1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru