• На ввод подается одно число. Найдите сумму всех его простых делителей.
    Входные данные
    Одно целое положительное число, не превышающее 10 в степени 6 и большее, чем один.
    Выходные данные
    Выведите сумму простых делителей этого числа.
    ПРИМЕРЫ
    ВВОД
    6
    ВЫВОД
    5

Ответы 6

  • Всее работает:) Спасибо огромное за помощь.
    • Автор:

      dyer
    • 6 лет назад
    • 0
  • Извините, что пришлось так повозиться. Спасибо Вам за терпение
    • Автор:

      beans
    • 6 лет назад
    • 0
  • Все хорошо
  • При вводе N = 69984, сумма простых делителей 136655,хотя, для этого числа всего 2 простых делителя - 2 и 3 69984 = 2^5 * 3^9, все остальные делители - составные числа.
    • Автор:

      katz6w9k
    • 6 лет назад
    • 0
  • Склоняйтесь к варианту в C++, Delphi/Pascal - нерабочий и удалить уже не могу, т.к. помечено как ответ
  • Delphi / Pascalfunction mySimpleDigit(a: integer):boolean;var i: integer;beginfor i:=sqrt(a) downto 1 doif not (a mod i = 0) then mySimpleDigit:=false else mySimpleDigit:=true;end;var i,n,s: integer;beginwrite('Введите число: ');readln(n);if ((n>1) and (n<1000000)) thenbegins:=0;for i:=2 to n-1 doif ((n mod i = 0) and (mySimpleDigit(i) = true)) then s:=s+i;end;writeln('Сумма всех простых делителей: ', s);readln;end.C++#include <cmath>#include <iostream>using namespace std;bool mySimpleDigit(unsigned a) {for (unsigned i =sqrt(a); i > 1; i--)if (!(a % i)) return false;return true;}int main() {unsigned n,s;cin >> n;if ((n>1) && (n<1000000)) {s=0;for (unsigned i=2; i<=n; i++)if ((n%i==0) && (mySimpleDigit(i)==true)) s+=i;cout << "Summa vsex prostix deliteley: " << s;} else cout << "Vvedite drugoe chislo";return 0;}
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years