Аватар для Fixer_84
1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
1

Оптимизация кода программы

18.06.2018, 18:07. Показов 1426. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, уважаемые форумчане! У меня, как всегда, небольшая проблема с кодом. Парочка тестов не проходят по времени.
Вот условие задачи:

Вывести представление целого числа N в виде произведения простых чисел.

Входные данные:

В первой строке находится единственное число N. 2 <= N <= 2^31 - 1.

Выходные данные:

Выводится список чисел в порядке неубывания, разделённых знаком "*".

Мой код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <bits/stdc++.h>
 
    using namespace std;
 
int main() {
    int n, q, k;
    cin >> n;
    k = 2;
    while (n >= k * k) {
        if (n % k == 0) {
            n /= k;
            cout << k << "*";
        } else k++;
    }
    cout << n;
}
Помогите, пожалуйста, оптимизировать Ну а если не получится, то другой алгоритм
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.06.2018, 18:07
Ответы с готовыми решениями:

Оптимизация кода программы
Задача В качестве самостоятельного задания исследуйте предельные значения N! (1*2*3*..*n) для двух...

Оптимизация кода готовой программы
Всем привет! Есть условие задачи: &quot;Входной файл INPUT.TXT содержит две строки. В первой строке...

Оптимизация кода
В С++ я совсем недавно, вот задали задачку: Перемножить 2 матрицы MxМ, элементами которых...

оптимизация кода
Задача: определить, является ли последовательность скобок действительной. Длинна строки не...

5
353 / 134 / 28
Регистрация: 16.12.2012
Сообщений: 607
Записей в блоге: 1
18.06.2018, 18:51 2
long long

Добавлено через 1 минуту
Если кинуть большое простое, то можно схватить переполнение, которое приведет к непонятно чему
1
Объявлятель переменных
 Аватар для SpBerkut
1220 / 406 / 320
Регистрация: 24.09.2011
Сообщений: 1,274
18.06.2018, 18:53 3
Ну, как вариант, нужно колдовать над 13-й строкой. Нет нужды перебирать все множители подряд. Достаточно только нечётных, а двойку в начале обрабатывать отдельно.
1
 Аватар для Fixer_84
1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
18.06.2018, 18:55  [ТС] 4
Ромаха, спасибо! Вы как всегда выручайте меня

Добавлено через 36 секунд
Цитата Сообщение от Ромаха Посмотреть сообщение
Если кинуть большое простое, то можно схватить переполнение, которое приведет к непонятно чему
Спасибо! Теперь все получилось.
0
 Аватар для Fixer_84
1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
19.06.2018, 20:46  [ТС] 5
Ромаха, а так срабатывает без long long:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <bits/stdc++.h>
 
    using namespace std;
 
int main() {
    int n, q, k;
    cin >> n;
    k = 2;
    while (k <= sqrt(n)) {
        if (n % k == 0) {
            n /= k;
            cout << k << "*";
        } else k++;
    }
    cout << n;
}
Тут точно дело в этом было:
C++
1
while (n >= k * k) {...}
0
353 / 134 / 28
Регистрация: 16.12.2012
Сообщений: 607
Записей в блоге: 1
19.06.2018, 21:15 6
Цитата Сообщение от Ромаха Посмотреть сообщение
можно схватить переполнение
Переполнение. Будет когда? Молодца. При умножении
0
19.06.2018, 21:15
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.06.2018, 21:15
Помогаю со студенческими работами здесь

Оптимизация кода
Доброго времени сутки господа у меня к вам вопрос как можно оптимызуваты данный код? #include...

Оптимизация кода
main: #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &quot;keyBuffer.h&quot; #include &quot;pause.h&quot;...

Оптимизация кода
Пожалуйста форумчане как можно сократить этот код Особенно от 27 до 90 строки #include &lt;iostream&gt;...

Оптимизация кода
Помогите оптимизировать код. суть программы такая, принимает на вход колличество бегунов и в...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
[golang] 80. Remove Duplicates from Sorted Array II
alhaos 28.01.2025
В предоставленном упорядоченном по возрастанию целочисленном слайсе, оставить уникальные элементы полюс один возможный дубликат. Вернуть количество таких элементов. / / . . .
Что такое внедрение зависимостей и для чего оно применяется
bytestream 27.01.2025
В современной разработке программного обеспечения одной из ключевых проблем является управление зависимостями между различными компонентами системы. Внедрение зависимостей (Dependency Injection, DI). . .
Как установить cellpadding и cellspacing в CSS
bytestream 27.01.2025
При создании веб-страниц с табличными данными разработчики часто сталкиваются с необходимостью правильного оформления внутренних и внешних отступов в таблицах. В традиционной разметке HTML для этих. . .
Чем отличаются public, protected, package-private и private в Java
bytestream 27.01.2025
В языке программирования Java механизм модификаторов доступа играет ключевую роль в реализации одного из фундаментальных принципов объектно-ориентированного программирования - инкапсуляции. . . .
Зачем нужно explicit в C++. Преобразование типов
bytestream 27.01.2025
В мире программирования на C++ управление преобразованием типов данных играет crucial роль в создании надежного и безопасного кода. Язык C++ предоставляет множество механизмов для контроля над. . .
Как создать удалённую (remote) ветку в Git
bytestream 27.01.2025
Система контроля версий Git стала неотъемлемой частью современной разработки программного обеспечения, предоставляя разработчикам мощные инструменты для управления кодовой базой. Одним из ключевых. . .
Как создать утечку памяти в Java
bytestream 27.01.2025
Утечка памяти в Java представляет собой ситуацию, когда программа неэффективно использует доступную память, удерживая ссылки на объекты, которые больше не нужны для работы приложения. Несмотря на. . .
КуМир: как решать задачи на числа
bytestream 27.01.2025
КуМир (Комплект Учебных МИРов) представляет собой уникальную образовательную среду программирования, разработанную специально для обучения основам алгоритмизации и программирования. Эта система. . .
Исполнитель Черепаха в КуМир: как решать задачи
bytestream 27.01.2025
Исполнитель Черепаха в системе КуМир представляет собой мощный образовательный инструмент, который помогает освоить основы программирования через визуальное представление результатов выполнения. . .
КуМир: как решать задачи на массивы
bytestream 27.01.2025
Массивы представляют собой важнейшую структуру данных в программировании, и система КуМир предоставляет удобные инструменты для работы с ними. В контексте КуМир массив можно представить как. . .
[golang] 26. Remove Duplicates from Sorted Array
alhaos 27.01.2025
Необходимо удалить дубликаты из предоставленного целочисленного отсортированного по взрастанию слайса, нужно изменить значения в слайсе и вернуть количество элементов. / / . . .
КуМир, исполнитель Робот. Решение задач
bytestream 27.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения программированию, которая была создана в Отделении информатики Российской Академии наук. Эта система разработана. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru