Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 34
1

Найти наибольший общий делитель трех чисел

23.04.2009, 19:13. Показов 3882. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Даны два натуральных числа A и B. Требуется найти их наибольший общий делитель (НОД).

Входные данные
Во входном файле INPUT.TXT в единственной строке записаны натуральные числа A и B через пробел (A, B ≤ 109).

Выходные данные
В выходной файл OUTPUT.TXT выведите НОД чисел А и В.

Задача не проходит тест на компиляцию: Compilation error, помогите найти почему.

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
#include <stdio.h>
int main()
{
   long a,b;
   FILE *fin, *fout;
 
 fin=fopen("input.txt","r");
 fout=fopen("output.txt","w");
 
 fscanf(fin, "%ld %ld",&a, &b);
 while ((a*b)>0){
   if (a>=b)
     a = a % b;
   else
     b = b % a;  
 }
 fprintf(fout, "%ld",a+b);
 
 
 fclose(fin);
 fclose(fout);
 
  return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.04.2009, 19:13
Ответы с готовыми решениями:

Найти наибольший общий делитель 8 чисел
Добрый вечер. Господа! Я не в состоянии написать программу сам, так как не понимаю как записать это...

Задано n натуральных чисел (n >10) найти наибольший общий делитель
Помогите написать программу, используя подпрограммы: задано n натуральных чисел (n &gt;10) ,найти...

Найти наибольший общий делитель для заданной последовательности чисел
Дано натуральное число n и натуральные числа a1, a2, ..., an. Найти наиболее больший общий делитель...

Найти наибольший общий делитель для 10 заданных натуральных чисел
Найти наибольший общий делитель для 10 заданных натуральных чисел.

7
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,169
24.04.2009, 01:26 2
Каким компилятором пользуешься и что за ошибки он выдает? У меня твоя прога работает нормально.
0
146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782
24.04.2009, 02:44 3
У меня вё компилируется. Только делайте проверку на открытие файла, а то при неудачеой попытке будет ошибка.
C
1
2
3
4
5
if (!fin || !fout)
{
     std::cout << "error\n";
     return 1;
}
0
45 / 10 / 3
Регистрация: 03.03.2009
Сообщений: 254
24.04.2009, 08:12 4
Лучший ответ Сообщение было отмечено как решение

Решение

вот тебе решение
C++
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
int a,b;
int main(){
  freopen("input.txt","r",stdin);
  freopen("output.txt","w",stdout);
  scanf ("%i %i",&a,&b);
  while(b) b^=a^=b^=a%=b;
  printf("%i",a);
  return 0;
}
3
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,169
24.04.2009, 12:19 5
Новенький, я бы не стал без особой нужды баловаться с переопределением ввода-вывода, да и b^=a^=b^=a%=b; слишком громоздко выглядит - не забывай, ты же все таки для начинающих пишешь, а им бы с простыми примерами разобраться
0
45 / 10 / 3
Регистрация: 03.03.2009
Сообщений: 254
24.04.2009, 17:26 6
Цитата Сообщение от kazak Посмотреть сообщение
Новенький, я бы не стал без особой нужды баловаться с переопределением ввода-вывода, да и b^=a^=b^=a%=b; слишком громоздко выглядит - не забывай, ты же все таки для начинающих пишешь, а им бы с простыми примерами разобраться
Да ты прав....
0
Evg
Эксперт CАвтор FAQ
21280 / 8302 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
24.04.2009, 17:44 7
Цитата Сообщение от Новенький Посмотреть сообщение
вот тебе решение
C++
1
while(b) b^=a^=b^=a%=b;
Век живи, век учись. Если это работает, надо записать себе куда-нибудь
0
45 / 10 / 3
Регистрация: 03.03.2009
Сообщений: 254
25.04.2009, 17:10 8
Цитата Сообщение от Evg Посмотреть сообщение
Век живи, век учись. Если это работает, надо записать себе куда-нибудь
Ну конечно работает....
0
25.04.2009, 17:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2009, 17:10
Помогаю со студенческими работами здесь

Найти наибольший общий делитель двух натуральных чисел, алгоритм Евклида
Ребята, не могу понять, как сформулировать функцию мейн. Нужно найти наибольший общий делитель двух...

Нужно найти наибольший общий делитель двух чисел использованием алгоритма Евклида
Дано натуральние числа a, b, c. Получить наибольший общий делитель этих чисел. Для определения НОД...

Найти наибольший общий делитель чисел M и N. Используйте теорему Эйлера: Если M делится на N, то НОД (N, M)=N,
решить нужно с функциями пользователя на языке си. вот, я около этого... помогите, будьте бобры...

Найти наибольший общий делитель
Заданные четыре натуральные числа a, b, c, d. Найти их наибольший общий делитель.(через функцию)


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru