Вывести на экран все простые делители заданного натурально числа - C (СИ)

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

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

#include <stdio.h>
 
int main() {
 
int k, n;
printf("Введите ваше натуральное число\n");
scanf("%d",&n);
for ( k= 2; k<=n/2; k++ ) {
    if ( n%k == 0 ) {
         printf( " %d", k );
    }
}
printf( "\n" );
return 0;
}
Подскажите пожалуйста, как дальше из делителей выбрать только простые делители?

Решение задачи: «Вывести на экран все простые делители заданного натурально числа»

textual
Листинг программы
for(k=2; k<=n;k++ ) {
  if (n%k==0) {
    printf("%d\n", k);
    while(n%k==0) n/= k;
  }
}

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

В данном коде выполняется следующий алгоритм:

  1. Переменная k инициализируется значением 2.
  2. Переменная n не инициализируется, её значение должно быть задано до начала выполнения программы.
  3. Условие цикла for выполняется, пока значение переменной k меньше или равно значению переменной n.
  4. Внутри цикла проверяется, делится ли число n на текущее значение переменной k без остатка.
  5. Если делится, то выводится на экран значение переменной k.
  6. Затем выполняется цикл while, который будет выполняться, пока число n делится без остатка на текущее значение переменной k.
  7. Внутри цикла while значение переменной n делится на текущее значение переменной k.
  8. После выхода из цикла while, значение переменной k увеличивается на единицу.
  9. Цикл for повторяется с начала до тех пор, пока условие не станет ложным. Данный код предназначен для поиска всех простых делителей числа n. Он начинает проверку с числа 2 и последовательно делит n на все числа, которые меньше или равны n. Как только число n перестаёт делиться на текущее значение переменной k без остатка, то она больше не является делителем и цикл while прекращается. Код может работать некорректно, если число n отрицательное или нулевое. Также он может выводить повторяющиеся делители, если они есть.

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


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

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

15   голосов , оценка 4.067 из 5
Похожие ответы