нужна помощь в создании программы
3464
14
Уважаемые програмисты, у меня возникла такого рода проблема, мне задали домашнее задание по информатике, а я не совсем понял тему. Суть в то что мне нужно сделать программу, которая при вводе числа с клавиатуры(целого числа) считает сумму его чётных делителей и сумму его нечётных делителей, причём сделать это надо чере цикл for. Может быть вы посмотрите и посоветуете(подскажите) как мне её доделать. Я сам уже кое-что сделал а дальше тупик. (Программа находится в прикреплённом файле внутри архива zex.zip) :help.gif:
7ZeX
Паскаль забыл, вот на 1С.

Процедура Сформировать()


Делитель = ИсходноеЧисло;

Если Делитель = 0 Тогда
Сообщить("На ноль делить нельзя!");
Возврат
КонецЕсли;

СуммаЧетных = 0;
СуммаНечетных = 0;

СчетчикЦикла = 0;
Для СчетчикЦикла = 1 По Число(Делитель) Цикл
Остаток = ИсходноеЧисло/Делитель;
Если (Остаток - Окр(Остаток,0,0)) = 0 Тогда
Если ((Делитель/2) - Окр(Делитель/2,0,0)) = 0 Тогда
СуммаЧетных = СуммаЧетных + Делитель;
Иначе
СуммаНечетных = СуммаНечетных + Делитель;
КонецЕсли;
КонецЕсли;
Делитель = Делитель - 1;
КонецЦикла;

Сообщить("СуммаНечетных "+Строка(СуммаНечетных)+" "+"СуммаЧетных "+Строка(СуммаЧетных));

КонецПроцедуры
7ZeX
var i, s1, s2: integer;
value: integer;

s1 := 0; s2 := 0;
for i := 1 to value div 2 do
if (value mod i) = 0 then
if (i mod 2) = 0 then s1 := s1+i
else s2 := s2+i;
Picaro
На C еще короче:миг:
int i,num=20,s1=0,s2=0;
for (i = 1; i
mx
if (!(num%i)) (i%2)?s1 =i:s2 =i;
кошмарный язык :безум: :злорадство: :миг:
Господин Уэф!
с точки зрения читабельности перл еще страшнее )))
Господин Уэф!
кошмарный язык
Любители if всегда могут воспользоваться if'ом. Вы еще на лисп посмотрите как-нибудь:улыб:
Господин Уэф!
кошмарный язык :безум: :злорадство: ;)
Номаный язык, просто оформлено так...

int i, count = 20;
int even = 0, odd = 0;

for(i = 1; i <= count / 2; i++){
if(count % i == 0)
if(i % 2) even += i;
else odd += i;
}
Господин Уэф!
люди вы можете мне НА ПАСКАЛЕ по подробнее написать:-)))
Господин Уэф!
Можно ещё на питоне.

[code]
#!/usr/bin/python

x = int(raw_input("Input x: "))
even, odd = 0, 0
i = 1
while i
EvilX
Ну, раз такой расколбас пошел:улыб:C# (.NET):


using System;

namespace AmountDividers
{
class Program
{
static void Main()
{
int Count = 0;
int Odd = 0;
int Even = 0;

try
{
Console.WriteLine("Please enter a whole number:");
Count = int.Parse(Console.ReadLine());

for(int i = 1; i <= Count / 2; i++)
{
if(Count % i == 0)
{
if ((i%2) != 0)
{
Even += i;
}
else
{
Odd += i;
}
}
}

Console.WriteLine(string.Format("Amount of even dividers: {0}", Even));
Console.WriteLine(string.Format("Amount of odd dividers: {0}", Odd));
}
catch (FormatException e){
Console.WriteLine(e.Message);
}
}
}
}


Ожидаем солюшены на астме и брейнфаке:улыб:
web
Люди, плизз напишите мне эту программу на языке турбо паскаль. Мне срочно надо, у меня незачёт открытый. Кто забыл напоминаю, что мне нужна программа, которая при вводе целого числа с клавиатуры выводит сумму его чётных и сумму его нечётных делителей, причём делается она с использованием цикла(желательно for). Заранее вам спасибо, просто я не совсем понял тему. :help.gif:
7ZeX
Тебе ж на чистом паскале написал человек.

var i, s1, s2: integer;
value: integer;

s1 := 0; s2 := 0;
for i := 1 to value div 2 do
if (value mod i) = 0 then
if (i mod 2) = 0 then s1 := s1+i
else s2 := s2+i;

Как считать число с клавиатуры и вывести результат не знаешь, чтоли? И begin с end'ом не знаешь куда дописать?

var i, s1, s2: integer;
value: integer;
begin
s1 := 0; s2 := 0;
write('Введи число: '); readln(value);
for i := 1 to value div 2 do
if (value mod i) = 0 then
if (i mod 2) = 0 then s1 := s1+i
else s2 := s2+i;
writeln('Сумма четных делителей: ', s1, ' Сумма нечетных делителей: ', s2);
end.

Паскаля под рукой нет чтобы отладить, так что если где-то точку с запятой не поставили, постарайся уж сам.
mx
Прогнал на Free Pascal и отформатировал.

program main;
var
i, even, odd: integer;
count: integer;
begin
even := 0;
odd := 0;

write('Введи число: ');
readln(count);

for i := 1 to count div 2 do
if (count mod i) = 0 then
if (i mod 2) = 0 then even := even + i
else odd := odd + i;

writeln('Сумма четных делителей: ', even, ' Сумма нечетных делителей: ', odd)
end.
tpi
Спасибо вам огромное)))Я спасён!