Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 13.03.2025
Сообщений: 29

Единичный НОД

17.11.2025, 13:19. Показов 1088. Ответов 11

Студворк — интернет-сервис помощи студентам
Заданы два натуральных числа в десятичной системе счисления, состоящие из единиц. В первом числе ровно N единиц, а во втором их ровно M. Требуется найти НОД этих чисел.

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

числа N и M (1 ≤ N, M ≤ 2000).

вроде как понял как написать однако слишком уж большие числа нужны (N и M (1 ≤ N, M ≤ 2000))

Pascal
1
2
3
4
5
6
7
8
### Uses School;
var (a,b):=RI2;
var s,m:string;
loop a do
   s:=s+'1'; 
loop b do
  m:=m+'1';
  НОД(strtoint64(s),strtoint64(m)).Print
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.11.2025, 13:19
Ответы с готовыми решениями:

Найти НОД трёх чисел. Примечание. НОД(a,b,c)=НОД(НОД(a,b),c).
Кто может решить данную задачку (составить программу с помощью циклов)))) заранее спасибо)) Найти...

Найти наибольший общий делитель чисел M и N. Используйте теорему Эйлера: Если M делится на N, то НОД (N, M)=N, иначе НОД (N, M)= =НОД (M mod N, N).
Найти наибольший общий делитель чисел M и N. Используйте теорему Эйлера: Если M делится на N, то...

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

11
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33414 / 21523 / 8237
Регистрация: 22.10.2011
Сообщений: 36,923
Записей в блоге: 12
17.11.2025, 15:35
Насколько я помню, если числа состоят из m и n единиц, то для нахождения их НОДа тебе достаточно найти НОД m и n.
0
 Аватар для agvego5
48 / 39 / 10
Регистрация: 18.09.2023
Сообщений: 258
17.11.2025, 17:22
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
## 
 
var a:='11111111';
var b:='1111';
 
var n:=a.Length;//N единиц
var m:=b.Length;//M единиц
 
Println(n,m);//8 4
Println(GCD(n,m));//4
 
Println(a.ToInteger,b.ToInteger);//11111111 1111
Println(GCD(a.ToInteger,b.ToInteger));//1111
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33414 / 21523 / 8237
Регистрация: 22.10.2011
Сообщений: 36,923
Записей в блоге: 12
17.11.2025, 18:17
Pascal
1
Println('1'*GCD(n,m));
Так не работает в PABC.Net? У меня просто не установлен он...
0
Модератор
10451 / 5746 / 3409
Регистрация: 17.08.2012
Сообщений: 17,479
17.11.2025, 19:44
Без проверки корректноти ввода.

Если "в лоб", то так:
Pascal
1
2
3
## 
  uses School;
  Println('1'*GCD(ReadInteger.ToString.Length, ReadInteger.ToString.Length))
0
 Аватар для agvego5
48 / 39 / 10
Регистрация: 18.09.2023
Сообщений: 258
18.11.2025, 08:21
Цитата Сообщение от volvo Посмотреть сообщение
Println('1'*GCD(n,m)); работает в PABC.Net
конечно работает. только про умножение не было упомянуто. возможно по умолчанию.
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
uses School;
в данной программе он не нужен. (GCD)
это для ТС нужен потому что там НОД - но тогда у него букв больше)
0
Модератор
10451 / 5746 / 3409
Регистрация: 17.08.2012
Сообщений: 17,479
18.11.2025, 08:44
Ну, кому-то нужен, кому-то не нужен. У меня Pascal ABC.NET версия 3.8.3 (потому что Windows XP), и в нём функция GCD размещена в модуле School.
0
 Аватар для agvego5
48 / 39 / 10
Регистрация: 18.09.2023
Сообщений: 258
18.11.2025, 18:53
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
Pascal ABC.NET версия 3.8.3 (потому что Windows XP)
последняя версия на сайте PascalABC.NET для Windows XP (Setup, 27 Mb) версия 3.10
больше она обновляться не планируется - как я понял это связано с DotNet40
0
Модератор
10451 / 5746 / 3409
Регистрация: 17.08.2012
Сообщений: 17,479
18.11.2025, 22:50
Ну, видел и знаю, естественно. Не помню, почему у меня не установилась 3.10, вроде бы из-за невозможности установить нужную версию .NET Framework. Вернее, установилось, но работать отказалось, а бубен доставать мне было лень. Да и вообще, 3.8.3, 3.10... Для меня нет особенной разницы. Я использую Pascal ABC.NET только для киберфорума.
0
0 / 0 / 0
Регистрация: 13.03.2025
Сообщений: 29
01.12.2025, 13:26  [ТС]
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
Println('1'*GCD(ReadInteger.ToString.Len gth, ReadInteger.ToString.Length))
прикольно но не работает, он же длину цифры берет а нужно чтобы взял длину ДЛЯ строки из единиц т.е. как тут например
Pascal
1
2
3
4
5
6
7
### Uses School;
var (a,b):=RI2;
var s,m:string;
loop a do
   s:=s+'1'; 
loop b do
  m:=m+'1';
а в твоем коде при вводе от 1 до 9, в любом случае выводит единицу т.к. считает наименьший делитель чисел(1,1) потому что их длина=1, нужно чтобы эти вводные числа были длинами строк как раз, а не из них длину вычислять
0
Модератор
10451 / 5746 / 3409
Регистрация: 17.08.2012
Сообщений: 17,479
01.12.2025, 14:16
Цитата Сообщение от ohio Посмотреть сообщение
а в твоем коде при вводе от 1 до 9, в любом случае выводит единицу
??? И что ТЕБЕ не так? Прочитай, что ТЫ лично в сообщении #1 написал:
Цитата Сообщение от ohio Посмотреть сообщение
Заданы два натуральных числа в десятичной системе счисления, состоящие из единиц
То есть, по заданию, в числах не должно быть никаких других цифр, кроме "1". Зачем ТЫ вводишь какие-то там другие цифры, я не постигаю. Своё собственное задание, что ли, не читал?
Цитата Сообщение от ohio Посмотреть сообщение
нужно чтобы эти вводные числа были длинами строк как раз, а не из них длину вычислять
А где ТЫ ранее писал, что должно быть так? А теперь вот выдвигаешь мне претензии относительно того, что я знать просто не мог? У ТЕБЯ всегда так? Ну чо, здорово.

С числами из "1" моя программа работает согласно задания, а остального эта программа делать не обязана.

Вот ТЕБЕ программа с вводом длин чисел (кстати, вычислять сами числа совершенно не требуется):
Pascal
1
2
3
## 
  uses School;
  Println('1'*GCD(ReadInteger, ReadInteger))
Если ТЫ вдруг решишь, что нужно выводить длину НОД, а не сам НОД, тогда так:
Pascal
1
2
3
## 
  uses School;
  Println(GCD(ReadInteger, ReadInteger))
0
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
04.01.2026, 12:22
Лучший ответ Сообщение было отмечено ohio как решение

Решение

ohio, эта задача на acmp имеет сложность 23%, а значит решается довольно просто. Что именно нужно использовать, подсказано еще во втором сообщении этой темы. А дальше были предложены варианты решения. Вместо того, чтобы прочесть внимательно написанное, Вы уперлись в реализацию именно своего варианта, да еще и претензии предъявляете. Ну тогда Вам прямая дорога в реализацию длинной арифметики (задачи на базовые операции с длинной арифметикой тоже имеются на acmp), ибо strtoint64 не прокатит для строк такой длины.

Вот Вам еще пара вариантов. Оба проходят проверку на acmp, правда первый потребляет больше памяти.

Pascal
1
2
3
4
5
6
7
8
###
Uses School;
var (a,b):= RI2;
var g:= НОД(a, b);
var s:string;
loop g do
   s:= s + '1'; 
s.Print;
Pascal
1
2
3
###
var (a,b):= RI2;
Println('1'*GCD(a, b));
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.01.2026, 12:22
Помогаю со студенческими работами здесь

Единичный НОД
Даны 2 числа, состоящие из N и M единиц (1<=N,M<=2000). Найти их НОД. Пример:6 3 Вывод:1001

Единичный НОД
Заданы два натуральных числа в десятичной системе счисления, состоящие из единиц. В первом числе...

Единичный НОД
Заданы два натуральных числа в десятичной системе счисления, состоящие из единиц. В первом числе...

Даны натуральные числа m, n. Вычислить наибольший общий делитель чисел m, n (НОД), используя рекурсивную функцию вычисления НОД.
Даны натуральные числа m, n. Вычислить наибольший общий делитель чисел m, n (НОД), используя...

Найти НОД трёх чисел, используя рекурсивную функцию нахождения НОД двух чисел
Помогите решить. 8. Найти НОД трёх чисел, используя рекурсивную функцию нахождения НОД двух...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru