Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2011, 07:18   #1
Alexbmgn
Пользователь
 
Регистрация: 08.01.2011
Сообщений: 33
По умолчанию Определение простых и составных делителей!

1.Заданы два целых числа М, N. Определить, больше ли сумма простых делителей числа М, произведения составных делителей числа N.

Прошу подскажите алгоритмы нахождения, голова уже пухнет.
Мне необходимо лишь знать алгоритм нахождения этих самых делителей ( в особенности составных).
Alexbmgn вне форума Ответить с цитированием
Старый 26.10.2011, 10:30   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Самый простой способ поиска делителей - для каждого числа d от 1 до Х проверить, равен ли остаток от деления X на d нулю.
Число X простое, если единственные делители на этом пути - единица и X, иначе - составное.
Abstraction вне форума Ответить с цитированием
Старый 29.10.2011, 12:20   #3
Alexbmgn
Пользователь
 
Регистрация: 08.01.2011
Сообщений: 33
По умолчанию

Дай вам Бог здоровья!
Alexbmgn вне форума Ответить с цитированием
Старый 30.10.2011, 14:23   #4
Alexbmgn
Пользователь
 
Регистрация: 08.01.2011
Сообщений: 33
По умолчанию

Вот вариант моего кода если кому надо, наверняка не самый оптимизированный, ну я и не гуд кодер собственно

var n,i,kol,pro,m:integer;
begin
kol:=0;
pro:=1;
writeln('Введите первое число');
readln(n);
n:=n+1;
writeln('сумма простых делителей этого числа= ',n);
writeln('Введите второе число');
readln(m);
repeat
kol:=0;
pro:=1;
writeln('Число простое, кол-во его делителей = 2 ', 'Введите другое число');
readln(m);
for i:=1 to m do
begin
if m mod i=0 then
kol:=kol+1;
if m mod i=0 then
pro:=pro*i;
end;
until kol>2;
begin
if n>pro then writeln('сумма простых делителей первого числа равная ',n, ' > ', ' произведения составных делителей второго числа равного ', Pro);
if n<pro then writeln ('сумма простых делителей первого числа равная ',n, '<', 'произведения составных делителей второго числа равного ', Pro);
end;
end.


Хотя есть подозрения что для второго числа нужно умножить лишь все делители кроме 1 и самого числа, тогда цикл будет для него от 2 до "числа"-1;
Alexbmgn вне форума Ответить с цитированием
Старый 22.11.2011, 07:08   #5
Alexbmgn
Пользователь
 
Регистрация: 08.01.2011
Сообщений: 33
По умолчанию

эмм код неверный, не берите его)) додумаю исправлю)
Alexbmgn вне форума Ответить с цитированием
Старый 22.11.2011, 07:26   #6
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Код:
var i,n,m,summ,mult:integer; res:string;


function isSimple(n:integer):boolean;
var i:integer;
begin
 if n<2 then isSimple:=false
 else
 if n<=3 then isSimple:=true
 else begin
 isSimple:=true;
 for i:=2 to trunc(sqrt(n)) do
  if n mod i=0 then begin
   isSimple:=false;
   break;
  end;
 end;
end;

begin
write('Введите первое число: ');
readln(n);
write('Введите второе число: ');
readln(m);
summ:=0;
for i:=2 to m do
 if m mod i =0 then
  if isSimple(i) then summ:=summ+i;
mult:=1;
for i:=4 to n do
 if n mod i = 0 then
  if (not isSimple(i)) then mult:=mult*i;
if summ>mult then res:='больше' else res:='не больше';
wrtiteln ('Сумма простых делителей числа М '+res+' произведения составных делителей числа N');
end.
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти кол-во трехзначных чисел сумма простых делителей которых кратна 5 (на Делфи) anzorchik Помощь студентам 2 02.10.2011 16:18
Программа для поиска простых, простых парных и взаимнопростых чисел in da fly Помощь студентам 1 26.05.2011 23:30
Как разложить число на 2 составных? oleeg Помощь студентам 2 24.03.2010 23:28
Сумма простых делителей Lion_paint Паскаль, Turbo Pascal, PascalABC.NET 0 05.05.2009 19:28