Для каждого числа последовательности найти сумму его простых делителей - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста. Дана последовательность из целых чисел. 0 — конец последовательности. Для каждого числа найти сумму его простых делителей. Оформить функцией определение суммы простых делителей числа. Думаю, мне нужна помощь только с функцией. Каркас думаю этот сгодиться
Листинг программы
  1. #include <cstdlib>
  2. #include <iostream>
  3. /*для положительных элементов последовательности*/
  4. using namespace std;
  5. int summaprostihdeliteley (int a)
  6. {
  7. int sum=0;
  8. .............................
  9. return sum;
  10. }
  11. int main(int argc, char *argv[])
  12. { int x;
  13. int a[100];
  14. int n=0;
  15. int b;
  16. cin >> b;
  17. while (b!=0)
  18. { a[n]=b;
  19. n++;
  20. cin >> b;
  21. }
  22. for (int i=1;i<n;i++)
  23. {
  24. cout <<a[i]<<" ==>"<<summaprostihdeliteley(a[i])<<"\n";}
  25. system("PAUSE");
  26. return EXIT_SUCCESS;
  27. }

Решение задачи: «Для каждого числа последовательности найти сумму его простых делителей»

textual
Листинг программы
  1. int summaprostihdeliteley(int a)
  2. { int i, s;
  3.     for(i=2, s=0; a > 1; i++) {
  4.        if (a%i==0) {
  5.           s += i;
  6.           while(a%i==0) a/= i;  // Каждый делитель считается только 1 раз
  7.        }
  8.      }
  9.       return s;
  10. }

Объяснение кода листинга программы

В данном коде функция summaprostihdeliteley(int a) принимает на вход целое число a и возвращает сумму его простых делителей. Происходит это следующим образом:

  1. Переменная i инициализируется значением 2, а переменная s — 0.
  2. Далее происходит цикл for, который выполняется до тех пор, пока a больше 1.
  3. Внутри цикла проверяется, делится ли a на i без остатка (если да, то это простой делитель).
  4. Если условие выполняется, то к переменной s прибавляется значение i, а переменная a делится на i (чтобы убрать этот делитель).
  5. После выполнения цикла, функция возвращает значение переменной s.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.273 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы