0 / 0 / 0
Регистрация: 08.04.2010
Сообщений: 36

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

02.09.2010, 14:19. Показов 2718. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
даны два числа:14 и 21.нужно найти наибольший общий простой делитель.

И так понятно,что это 7.но как написать прогу не знаю
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.09.2010, 14:19
Ответы с готовыми решениями:

Найти наибольший общий делитель
сделал модуль " наибольший общий делитель" unit nod; interface function nod(a,b:longint):integer; implementation function...

Найти наибольший общий делитель
найти наибольший общий делитель трех натуральных чисел, имея в виду что НОД(a b c)=НОД(НОД(a b)c). определить прцедуру для расчета...

Найти наибольший общий делитель элементов последовательности
Найти наибольший общий делитель элементов последовательности (последовательность задаётся случайным образом). Поиск выполнить, используя...

6
Почетный модератор
 Аватар для Puporev
64312 / 47609 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
02.09.2010, 14:46
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Для любых двух целых чисел.

Pascal
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
uses crt;
{функция определения простого числа}
function Prost(n:integer):boolean;
var i:integer;
begin
if n<2 then Prost:=false
else
 begin
  Prost:=true;
  for i:=2 to round(sqrt(n))do
  if n mod i=0 then
   begin
    Prost:=false;
    break;
   end;
 end;
end;
var a,b,c,d,nod,k:integer;
begin
clrscr;
writeln('Введите 2 целых числа:');
readln(a,b);
{выберем меньшее число}
if a>b then
  begin
   c:=a;
   a:=b;
   b:=c;
  end;
{начнем проверять делимость начиная с 2}
d:=2;k:=0;
while d<=a do
 begin
  if (a mod d=0)and(b mod d=0)and Prost(d) then{если оба делятся и делитель простой}
   begin
    nod:=d;
    k:=1;
   end;
  d:=d+1;
 end;
if k=0 then write('Общего простого делителя нет')
else write('Наибольший общий простой делитель=',nod);
readln
end.
0
0 / 0 / 0
Регистрация: 08.04.2010
Сообщений: 36
02.09.2010, 15:11  [ТС]
спасибо большое.а не могли бы вы дописать код после цикла while пожалуйста?
0
Почетный модератор
 Аватар для Puporev
64312 / 47609 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
02.09.2010, 15:13
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от wari195 Посмотреть сообщение
дописать код после цикла while
А что там дописывать? Код полный.

Добавлено через 52 секунды
В телефон не влазит?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
while d<=a do
 begin
  if (a mod d=0)and(b mod d=0)and Prost(d) then{если оба делятся и делитель простой}
   begin
    nod:=d;
    k:=1;
   end;
  d:=d+1;
 end;
if k=0 then write('Общего простого делителя нет')
else write('Наибольший общий простой делитель=',nod);
readln
end.
1
0 / 0 / 0
Регистрация: 08.04.2010
Сообщений: 36
02.09.2010, 19:32  [ТС]
а вы не подскажите что делает строка for i:=2 to round(sqrt(n))?и зачем нужно это
Pascal
1
2
3
4
if a>b then
c:=a;
a:=b;
b:=c?
0
Почетный модератор
 Аватар для Puporev
64312 / 47609 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
02.09.2010, 19:40
Цитата Сообщение от wari195 Посмотреть сообщение
for i:=2 to round(sqrt(n))
в переводе на русский значит что мы перебираем все числа от 2 до округленного корня из проверяемого числа, дальше проверять делится или нет, нет смысла.
Pascal
1
2
3
4
if a>b then
c:=a;
a:=b;
b:=c?
я вроде написал в комментариях что это мы выбираем какое число меньше и меняем их местами, нам нужно проверять делители по меньшему числу.
1
0 / 0 / 0
Регистрация: 08.04.2010
Сообщений: 36
02.09.2010, 19:51  [ТС]
спасибо большое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.09.2010, 19:51
Помогаю со студенческими работами здесь

Найти наибольший общий делитель трех натуральных чисел.
Найти наибольший общий делитель трех натуральных чисел, имея ввиду, что НОД(a,b,c)=НОД(НОД)(а,b),c).(Определить функцию для расчета...

Найти наибольший общий делитель двух натуральных чисел
Написать программу решения следующей задачи. Даны два натуральных числа. Найти их наибольший общий делитель.

Найти наибольший общий делитель двух натуральных чисел
Написать программу решения следующей задачи. Даны два натуральных числа. Найти их наибольший общий делитель.

Найти наибольший общий делитель двух натуральных чисел a и b.
65.Составить программу нахождения суммы четных чисел, находящихся в промежутке от 26 до 88. 66. Найти наибольший общий делитель двух...

Используя рекурсию, найти наибольший общий делитель двух натуральных чисел
напишите программу, использую рекурсию, находящую наибольший общий делитель двух натуральных чисел &quot;х&quot; и &quot;y&quot;. заранее...


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

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

Новые блоги и статьи
Согласованность транзакций в MongoDB
Codd 30.04.2025
MongoDB, начинавшая свой путь как классическая NoSQL система с акцентом на гибкость и масштабируемость, сильно спрогрессировала, включив в свой арсенал поддержку транзакционной согласованности. Это. . .
Продвинутый ввод-вывод в Java: NIO, NIO.2 и асинхронный I/O
Javaican 30.04.2025
Когда речь заходит о вводе-выводе в Java, классический пакет java. io долгие годы был единственным вариантом для разработчиков, но его ограничения становились всё очевиднее с ростом требований к. . .
Обнаружение объектов в реальном времени на Python с YOLO и OpenCV
AI_Generated 29.04.2025
Компьютерное зрение — одна из самых динамично развивающихся областей искусственного интеллекта. В нашем мире, где визуальная информация стала доминирующим способом коммуникации, способность машин. . .
Эффективные парсеры и токенизаторы строк на C#
UnmanagedCoder 29.04.2025
Обработка текстовых данных — частая задача в программировании, с которой сталкивается почти каждый разработчик. Парсеры и токенизаторы составляют основу множества современных приложений: от. . .
C++ в XXI веке - Эволюция языка и взгляд Бьярне Страуструпа
bytestream 29.04.2025
C++ существует уже более 45 лет с момента его первоначальной концепции. Как и было задумано, он эволюционировал, отвечая на новые вызовы, но многие разработчики продолжают использовать C++ так, будто. . .
Слабые указатели в Go: управление памятью и предотвращение утечек ресурсов
golander 29.04.2025
Управление памятью — один из краеугольных камней разработки высоконагруженных приложений. Го (Go) занимает уникальную нишу в этом вопросе, предоставляя разработчикам автоматическое управление памятью. . .
Разработка кастомных расширений для компилятора C++
NullReferenced 29.04.2025
Создание кастомных расширений для компиляторов C++ — инструмент оптимизации кода, внедрения новых языковых функций и автоматизации задач. Многие разработчики недооценивают гибкость современных. . .
Гайд по обработке исключений в C#
stackOverflow 29.04.2025
Разработка надёжного программного обеспечения невозможна без грамотной обработки исключительных ситуаций. Любая программа, независимо от её размера и сложности, может столкнуться с непредвиденными. . .
Создаем RESTful API с Laravel
Jason-Webb 28.04.2025
REST (Representational State Transfer) — это архитектурный стиль, который определяет набор принципов для создания веб-сервисов. Этот подход к построению API стал стандартом де-факто в современной. . .
Дженерики в C# - продвинутые техники
stackOverflow 28.04.2025
История дженериков началась с простой идеи — создать механизм для разработки типобезопасного кода без потери производительности. До их появления программисты использовали неуклюжие преобразования. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru