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

НОЧД и НОНД(задача) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Указатель на объект.объясните http://www.cyberforum.ru/cpp-beginners/thread631402.html
base - это базовый класс...first - это производный от base...iam() виртуальная функция, перегруженная в first... Вопрос: почему вызывается функция базового класса, а не first?.. #include <iostream>...
C++ GetModuleFileNameEx ошибка #include <iostream> #include <windows.h> #include <time.h> #include "main.h" #pragma comment(lib,"Psapi") using namespace std; //global ULONG crc_tab; http://www.cyberforum.ru/cpp-beginners/thread631400.html
C++ Отсортировать по возрастанию элементы массива
1)Дан массив целых чисел из 10 элементов отсортировать по возрастанию. 2)Дан действительный массив A.Напечатать индекс его отрицательных элементов. помогите пожалуйста написать программу на С++
Перевод программы с Pascal на С++ C++
uses crt; var i :integer; BEGIN ClrScr; Write('Результат: '); for i := 20 to 50 do if (i mod 3 = 0) and (i mod 5 <> 0) then Write(i, ' '); Readln; END.
C++ Квадратные уровнения http://www.cyberforum.ru/cpp-beginners/thread631379.html
помогите написать код. программа должна: решить квадратное уравнение по трем коэффициентам. даны a, b и c напишите как можно это реализовать.
C++ Рекурсия: нахождение биномиальных коэффициентов В общем нужно вывести биноминальные коэффициенты последовательности.... т.е есть последовательность - скажем вектор 12345 n = size = 5 k - пусть равен 2 тогда результатом должны быть все... подробнее

Показать сообщение отдельно
ZaMaZaN4iK
Мой лучший друг-отладчик!
164 / 164 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1

НОЧД и НОНД(задача) - C++

31.07.2012, 22:49. Просмотров 1281. Ответов 5
Метки (Все метки)

Здравствуйте! Тут на одном сайте задача есть:
Для двух данных натуральных чисел найдите их наибольший четный и наибольший нечетный делители.

Входные данные
Вводятся два натуральных числа, разделенные пробелом. Числа не превосходят 10 в степени 9.

Выходные данные
Выведите два числа через пробел — наибольший общий четный делитель и наибольший общий нечетный делитель. Если какого-то из делителей не существует, выведите вместо него 0.

Ограничения: время работы - не более 1 сек, память не более 64 мб.



Ну так вот, я её решил:
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
#include <iostream>
 
using namespace std;
 
long long first,second,chet=0,nechet=0,temp;
 
long long gcd(long long a, long long b)
{
    while(b)
    {
        a%=b;
        swap(a,b);
    }
    return a;
}
 
int main()
{
    cin>>first>>second;
    temp=gcd(first,second);
    if(temp%2==0)
    {
        chet=temp;
        temp-=1;
        while(temp > 0)
        {
            if(first % temp == 0 && second % temp == 0)
            {
                nechet=temp;
                break;
            }
            temp-=2;
        }
    }
    else
    {
        nechet=temp;
        temp-=1;
        while(temp > 0)
        {
            if(first % temp == 0 && second % temp == 0)
            {
                nechet=temp;
                break;
            }
            temp-=2;
        }
    }
    cout<<chet<<' '<<nechet;
}
Но возникла проблема - на одном из тестов(неизвестно что за тест) программа не проходит по времени, а другие 19 тестов пролетают только в путь, причем очень быстро(0.004 сек самое плохое время).А на этом одном тесте пишет, что более одной секунды(хз сколько, написано только что более 1 сек).


Так вот, уважаемые форумчане-программисты, скажите, в чём дело? Чё не атк в моем решении?

P.S. Прогаю на плюсах не так давно, поэтому скорее всего у меня код быдловатый)))Но на предыдущих задачах(около 20 задач) он очень хорошо работал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru