Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 06.10.2009
Сообщений: 21
1

Получить все делители числа

16.10.2009, 21:01. Показов 1277. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Даны целые числа p и q. Получить все делители числа q, взаимно простые с p, т.е. не имеющие с p общих делителей.
Помогите решить задачу или скажите что у меня не правильно. Буду премного благодарен
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Program CHISLA;
uses crt;
var i,k,l,q,p: integer;
begin
clrscr;
writeln('Введите q and p');
readln(q,p);
for i:= 1 to 100 do
begin
k:= q mod i;
if k=0 then
 begin
a:= p mod i;
if a <> 0 then
 writeln(i);
end;
end;
readln;
end;
Добавлено через 13 минут
Язык Pascal
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2009, 21:01
Ответы с готовыми решениями:

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

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

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

Получить все общие делители (положительные и отрицательные)
Даны целые числа m, n (m&lt;&gt;0, n&lt;&gt;0). Получить все их общие делители (положительные и отрицательные)....

4
Реальность Нереальна!
352 / 128 / 7
Регистрация: 02.08.2009
Сообщений: 3,216
Записей в блоге: 1
16.10.2009, 21:31 2
Babib, по моему лучше не 100 раз выполнять цикл, а до q;и а у тебя вообще никогда не будет равно 0(по-моему) и у тебя просто 100 раз будет выводиться число счётчика
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
16.10.2009, 22:11 3
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
Program CHISLA;
uses crt;
var p,q,i: integer;
begin
clrscr;
write('p=');readln(p);
write('q=');readln(q);
writeln('Делители числа ',q,' взаимно простые с ',p);
for i:=2 to q do
if(q mod i=0)and(p mod i<>0)
then  write(i,' ');
readln;
end.
1
15 / 15 / 5
Регистрация: 26.11.2008
Сообщений: 94
16.10.2009, 22:50 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

а вы попробуйте проверить результат. по-моему неправильно.
числа взаимно простые, если их найб. общий делитель равен 1.
а это условие (p mod i<>0) совершенно не значит, что числа взаимно простые.

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
Program EX;
uses crt;
const n=100;
type am=array[1..n] of integer;
var  i,j,p,q: integer;
     a: am;
 
function GCD(x,y: integer): integer;
var z: integer;
begin
 while (y>0) do
 begin
 z:= x mod y; x:=y; y:=z;
 end;
 GCD:=x;
end;
 
procedure D(p,q: integer; var a:am);
 var l:integer;
begin
   l:=round(q/2)+1; j:=0;
   for i:=2 to l do
    if (q mod i = 0)and(GCD(i,p)=1) then
    begin
       inc(j); a[j]:=i; write(a[j],' ');
   end;
end;
begin clrscr;
write('q=');readln(q);
write('p=');readln(p);
D(p,q,a);
readln;
end.

Например, для q=315 p=25 у вас выдает: 3 7 9 15 21 35 45... хотя 15,35,45 не взаимно простые с 25
а у меня все правильно: 3 7 9 21 63)

правда можна была без масива, ну это на ваше усмотрение - меняйте как хотите)
4
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
16.10.2009, 23:14 5
Цитата Сообщение от LudchikLuk Посмотреть сообщение
а вы попробуйте проверить результат. по-моему неправильно.
числа взаимно простые, если их найб. общий делитель равен 1.
а это условие (p mod i<>0) совершенно не значит, что числа взаимно простые.
Полностью согласен. Неверно понял условие. Спать пора, хватит шарахаться, народ смешить.
1
16.10.2009, 23:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2009, 23:14
Помогаю со студенческими работами здесь

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

Определить все делители натурального числа
Всем привет! Помогите пожалуйста решить задачи: 1. Ввести n чисел, определить, сколько среди них...

Найдите все делители натурального числа N
1) Вычеслить P=1*1/2*1/4*1/8.... Произведение содержит n множителей. Значение n вводится с...

Найдите и выведите все непростые делители числа М
Постройте два множества А и К. Во множестве А разместите все делители целого числа М, а во...


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

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