Програмирование: C++, Delphi, PHP, etc.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Проект №1

Сообщений 1 страница 3 из 3

1

Задача: найти сумму простых делителей натурального числа.

Термины: Простое число - число, которое делится только на само себя и на единицу.
Напр: число 1 - простое, 2 - простое, 3 - простое, 4 - непростое (т.к. делится на 1,2 и 4), 11 - простое, 14 - непростое (т.к. делится на 1, 2, 7 и 14).
Натуральное число - целое число, которое больше или равно 1.
Напр: 1, 2, 3 ... и т.д.

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

Код программы:

Код:
#include<stdio.h>
#include<conio.h>

void main()
{
   int simple(int); //прототип ф-ии simple
   int n,d,s;

   clrscr();

l1:s=1; //сразу записываем в сумму 1

   printf("Zadayte natural'noe znachenie: ");
   scanf("%d",&n); //вводим с клавы число и сохраняем его в n

   if(n>0) //если число n натуральное
   {
      if(n%2==0) s+=2; //если n кратно 2, то увеличиваем сумму s на 2
      if(n>2 && simple(n)) s+=n; //если n>2 и чило n простое, то увеличиваем сумму s на само число n

      for(d=3;d<=n/2;d=d+2) //перебираем все d - нечетные потонцеальные делители числа n, которые меньше или равны половине n и больше или равны 3
      if(n%d==0 && simple(d)) s+=d; // если d  является делителем n и оно простое, то увеличиваем сумму s на d

      printf("Otvet: summa prostih deliteley = %d\n\n",s); //печатаем ответ
      goto l1; //переход к метке l1
   }
}
int simple(int x) //далее тело ф-ии simple
{
   int p=1,i=2;

   while(p==1 && i<=x/2) //пока флаг p равен 1 и i (потенциальный делитель x) меньше или равен половине x
   {
      if(x%i==0) p=0; //если число не простое, то флагу p присваиваем 0
      i++;
   }
   return p; //возвращаем в ф-ию main 0 (число x не простое) или 1 (число x простое)
}

0

2

Чегой то мало народу интересуется. Может изменить немного тематику. Скажем добавить " для профи и начинающих". Попробовать начать с самого нуля. Пригласить мастеров, что бы помогли понять, нам чайникам, чой то такое програмирование, с чего оно начинается и с чем его едять! Так же открыть тематику " Чайник и комп". Где не матерится терминами, а попытаться доступно объяснить чайнику куды тыкать пальцем, зачем и что из этого получится. Я сам учился работе на компе тыкая пальцем и смотря что из этого выйдет. И все    чему я действительно научился, так это переустанавливать ОС с нуля. Поскольку гробил систему так что уже ни чего не помогало. А когда читаеш темы на форумах, мозги кипят от напряга че ни будь понять. Смотришь и не хрена не понимаешь! Если это вам не интересно, то извините. Можете меня послать, я не обижусь. Просто уйду. С уважением! Kolah.

0

3

Энто че короме мя никого нема?????????? :O

0