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

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

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

Листинг программы
  1. #include <stdio.h>
  2. int main() {
  3. int k, n;
  4. printf("Введите ваше натуральное число\n");
  5. scanf("%d",&n);
  6. for ( k= 2; k<=n/2; k++ ) {
  7. if ( n%k == 0 ) {
  8. printf( " %d", k );
  9. }
  10. }
  11. printf( "\n" );
  12. return 0;
  13. }
Подскажите пожалуйста, как дальше из делителей выбрать только простые делители?

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

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

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

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

  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

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

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

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