Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

ускорение времени выполнения программы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу которая при нажатии клавиш:правый Shift+ правый Alt блокировала бы клавишу 9 на клавиатуре. http://www.cyberforum.ru/cpp-beginners/thread1649951.html
Добрый день Необходимо написать программу которая при нажатии клавиш:правый Shift+ правый Alt блокировалась бы клавиша 9 на клавиатуре.
C++ Чтение чисел через scanf Хоть убей не могу заставить корректно работать функцию scanf. Стоит простая задача: ввести 2 числа и прочитать их. Но по непонятной мне причине нормально считать числа не получается, приходиться... http://www.cyberforum.ru/cpp-beginners/thread1649907.html
Что почитать перед тем как изучать C++? C++
Как устроен компьютер? как это все работает? Потому что как только сталкиваюсь с такими понятиями как байт, бит, ячейки памяти, процессор, побитовые операции, многобайтовые кодировки и т.д. начинаю...
Cчитать из файла коэффициенты и вывести на экран то что считали и корни уравнения C++
есть а) a|x|=b и б) ax=b обязательно использовать ассоциативный контейнер нужно считать из файла коэффициенты и вывести на экран то что считали и корни построение успешно но консоль пустая...
C++ Использование функции fgets, где ошибка? http://www.cyberforum.ru/cpp-beginners/thread1649842.html
Все привет. В чем может быть ошибка, уже долго сижу и не понимаю. Я сперва со строки беру значение и заношу в файл, затем я хочу вытянуть из файла эту строку и занести в другую строку. Но, видимо,...
C++ Как реализовать передачу массива в функцию и возвращение массива из функции? Нужно сделать отдельный блок программы в виде функции, которая в качестве аргумента должна принимать массив и возвращать массив после некоторых манипуляций. В случае обычной функции это делалось... подробнее

Показать сообщение отдельно
Dimension
Dimension
556 / 437 / 135
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
29.01.2016, 10:47
Prolamer, там ошибки есть в коде ,и последние тесты из-за переполнения не проходят
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <bits/stdc++.h>
#define all(x) (x).begin(), (x).end()
#define ll long long
using namespace std;
vector<pair<int, int> >a;
const int N = 70000;
const int base = 1000000000;
int lp[N + 1];
inline void mul(vector<ll> &a,ll b) {
    int carry = 0;
    for (size_t i = 0; i<a.size() || carry; ++i) {
        if (i == a.size())
            a.push_back(0);
        long long cur = carry + a[i] * 1ll * b;
        a[i] = int(cur % base);
        carry = int(cur / base);
    }
    while (a.size() > 1 && a.back() == 0)
        a.pop_back();
}
int main() {
    ios_base::sync_with_stdio(false);
    int in, c = 0;
    cin>>in;
    vector<int> pr;
    for (int i = 2; i <= N; ++i) {
        if (lp[i] == 0) {
            lp[i] = i;
            pr.push_back(i);
        }
        for (int j = 0; j<(int)pr.size() && pr[j] <= lp[i] && i*pr[j] <= N; ++j)
            lp[i * pr[j]] = pr[j];
    }
    for (int i = 0;pr[i]*pr[i] <= in;i++) {
        if (in%pr[i] == 0) {
            while (in%pr[i] == 0) {
                c++;
                in /= pr[i];
            }
            a.push_back(make_pair(pr[i], c));
            c = 0;
        }
    }
    if (in > 1)
        a.push_back(make_pair(in, 1));
    vector<ll> ans;
    ans.push_back(1);
    for (int i = 0;i < a.size();i++) 
        if (a[i].second % 3) {
            int t = 3 - (a[i].second % 3);
            a[i].second += t;
            ll p = pow(a[i].first, t);
            mul(ans, p);
        }
    for (auto i : ans)
        cout << i;
    //cerr << "\nTime elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
    cin.get(), cin.get();
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru