Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/48: Рейтинг темы: голосов - 48, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 16.11.2009
Сообщений: 15
1

Даны целые числа p и q. Получить все делители числа q, взаимно простые с p, т.е. не имеющие с p общих делителей.

27.12.2009, 17:17. Показов 9739. Ответов 3
Метки нет (Все метки)

Даны целые числа p и q. Получить все делители числа q, взаимно простые с p, т.е. не имеющие с p общих делителей.

Есть в C++ она у вас на форуме, не могли бы вы в Паскаль сделать с использованием двумерного массива: Взаимно простые делители
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.12.2009, 17:17
Ответы с готовыми решениями:

Получить все простые делители этого числа.
1)Дано натуральное число n. Получить все простые делители этого числа. 2)Дана непустая...

Даны натуральные числа a,b. Получить все простые числа p, удовлетворяющие неравенствам: a<=p<=b
Даны натуральные числа a,b(a&lt;b). Получить все простые числа p, удовлетворяющие неравенствам:...

Получить все натуральные числа, меньшие n и взаимно простые с ним
Составьте программу для решения одной из следующих задач: Дано натуральное число n. Получить все...

Вывести на экран в столбец все делители данного числа и количество делителей для каждого числа
Ввести последовательно n произвольных целых чисел, вывести на экран в столбец все делители данного...

3
10 / 10 / 4
Регистрация: 18.11.2009
Сообщений: 47
27.12.2009, 17:27 2
Цитата Сообщение от phenomiks Посмотреть сообщение
Даны целые числа p и q. Получить все делители числа q, взаимно простые с p, т.е. не имеющие с p общих делителей.
Общих делителей, отличных от 1, Вы хотели сказать?
Зачем 2мерный, можно 2 одномерных, делаем факторизацию обеих чисел (получим 2 одномерных массива с простыми делителями), потом выбрасываем со второго массива все числа, которые есть в первом (если n и t - 2 из простых делителей q, то n*t будет иметь общий делитель t с числом p, если t - простой делитель числа p).
Далее битовыми масками вхождения строим все произведения. Можно или выбросить повторения потом, или с самого начала прописать степени.
Можно даже с 1 массивом, сначала розложить второе число, а потом, пока будем факторизировать первое, ничего не запоминать, а на ходу выбрасывать лишние числа с массива.
Такое решение подходит? Или обезательно 2мерный?
З.Ы. А если маленькие числа и задача не для практического применения (например, задание в школе/универе), то можно и глупое решение - перебор.
0
1 / 1 / 0
Регистрация: 16.11.2009
Сообщений: 15
27.12.2009, 17:33  [ТС] 3
Цитата Сообщение от LeBron23 Посмотреть сообщение
Общих делителей, отличных от 1, Вы хотели сказать?
Зачем 2мерный, можно 2 одномерных, делаем факторизацию обеих чисел (получим 2 одномерных массива с простыми делителями), потом выбрасываем со второго массива все числа, которые есть в первом (если n и t - 2 из простых делителей q, то n*t будет иметь общий делитель t с числом p, если t - простой делитель числа p).
Далее битовыми масками вхождения строим все произведения. Можно или выбросить повторения потом, или с самого начала прописать степени.
Можно даже с 1 массивом, сначала розложить второе число, а потом, пока будем факторизировать первое, ничего не запоминать, а на ходу выбрасывать лишние числа с массива.
Такое решение подходит? Или обезательно 2мерный?
З.Ы. А если маленькие числа и задача не для практического применения (например, задание в школе/универе), то можно и глупое решение - перебор.
Некоторые фразы не понял, но думаю подходит. Но можно и "по глупому", если не сложно, напиши плиз
0
10 / 10 / 4
Регистрация: 18.11.2009
Сообщений: 47
27.12.2009, 17:42 4
Цитата Сообщение от phenomiks Посмотреть сообщение
Некоторые фразы не понял, но думаю подходит. Но можно и "по глупому", если не сложно, напиши плиз
Что тут сказать Подняли мне настроение.
Пока думайте дальше, когда все поймете - возьмемся за настоящее решение, а пока "глупое" ловите.
Pascal
1
2
3
4
5
6
7
8
9
10
var a,i,b,t,q:longint;
begin
readln(a,b);
for i:=1 to b do begin
if b mod i=0 then begin
t:=i;q:=a;
while (t>0)and (q>0) do if t>q then t:=t mod q else q:=q mod t;
if t+q=1 then writeln(i);
end;end;
end.
Это глупое. Хотя за секунду работает для чисел в пределах нескольких миллионов, но глупое.
Да, забыл сказать, на буквы не обращайте внимания. Назвал переменные так, как мне удобно кодить.
На входе 2 наших числа, на выходе - все ответы, по одному в строке. Если надо - можно их в массиве хранить.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2009, 17:42

Даны целые положительные числа A и B (A < B). Вывести все целые числа от A до B включительно
Даны целые положительные числа A и B (A &lt; B). Вывести все целые числа от A до B включительно; при...

Даны четырехзначные целые числа. Найти все числа, где все четыре цифры, составляющие число, одинаковы
Всем доброго времени суток.Пожалуйста ,напишите в паскале следующие задачи: №2 Даны...

Даны числа а и b, вывести все целые числа между ними
Нужно решить через любой цикл(while,repeat,until): Даны числа а и b вывести все целые числа между...

Вывести все простые делители числа.
Дали задачу не знаю как решать.Дано число n.Вывести все его простые делители.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.