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

Ускорение алгоритмов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поиск литературы http://www.cyberforum.ru/cpp-beginners/thread927569.html
Появилась необходимость работы с файлом excel. Необходим взять из файла информацию для дальнейшей ее обработки. Подскажите пожалуйста книги, где я мог бы это прочитать. С/С++
C++ Перегруженные знаки в дружественных функциях шаблона класса Здравствуйте! Не могу найти ошибку, только начал тренироваться с шаблонами. Помогите пожалуйста! #include "stdafx.h" #include <iostream> using namespace std; template<class Type> class... http://www.cyberforum.ru/cpp-beginners/thread927537.html
Калькулятор C++
В идеале, то что представлено ниже является калькулятором с 4-мя действиями (+,-,*,/) и с произвольным количеством переменных. Но вот не работает он : С. Он основан на примере из Страуструпа. Я над...
Из delphi в С++: создать приложение, визуально демонстрирующее работу разных алгоритмов сортировки C++
Задача: Методические рекомендации по лабораторной работе №2 Процессы. Потоки. Часть 1. Задача: создать многопотоковое приложение, в котором можно менять приоритеты потоков. Программа...
C++ Почему не добавляется элемент в вектор? http://www.cyberforum.ru/cpp-beginners/thread927504.html
продолжение этой темы, но с другой проблемой. http://www.cyberforum.ru/cpp-beginners/thread927463.html Пишу программу, которая принимает произвольное количество файлов с записями на вход и в...
C++ умные указатели у меня например есть куча юнитов, у каждого из них есть указатель на игровой ресурс (допустим камень). Есть такая задумка: когда камень иссякнет, юнит который истощил этот камень удаляет этот ресурс... подробнее

Показать сообщение отдельно
ALEXKIRNAS
10 / 10 / 2
Регистрация: 27.06.2013
Сообщений: 151

Ускорение алгоритмов - C++

23.07.2013, 14:40. Просмотров 1088. Ответов 22
Метки (Все метки)

Имеется код, нужно его ускорить. (Помогите тупому!!!!!!!)
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
#include <stdio.h>
#include <iostream>
#include <string>
#include <stdlib.h>
 
int c (const void* a, const void*b)
{
    return *(int *)a- *(int *)b;
}
 
int main ()
{
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    std::string n;
    std::getline(std::cin, n);
    int m=n.size(), *a=new int [m]; unsigned __int64 i=0, z;
    for( ; m-i; i++) *(a+i)=n[i]-48;
    qsort(a,m,sizeof(int),c);
    if(!*a) goto A;
    __int64 b=1, ch=0, ch1=0;
    for(i=0; m-i; i++, b*=10) ch+=b* *(a+i);
    for(i=m-1, b=1; i+1; i--, b*=10) ch1+=b* *(a+i);
    for(i=2; i*i<=ch || i*i<=ch1; i++) for(z=i*i; z<=ch || z<=ch1; z+=i) if(z==ch || z==ch1) goto A;
    std::cout << "Yes";
    return 0;
A:
    std::cout << "No";
}
Код - решение задачи по ссылке http://********/index.asp?main=task&id_task=516
Программа считывает число, потом записывает числа в массив ,потом сортирует их с помощу QSORT, потом создаю два числа самое маленькое и самое большое с цифр что есть в массиве, потом проверяю их на простоту.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru