• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

РЕКУРСИЯ

  • Автор темы subval
  • Дата начала
S

subval

Любое натуральное число можно разложить на простые сомножители. Написать программу с использованием рекурсивной подпрограммы.

ВОТ КОД НА С:

[codebox]#include<stdio.h>
#include<math.h>
#include<conio.h>
int deliteli(int number)
{int div;
printf("\n Делители числа %d:\n",number);
for(div=1;div<=number;div++)
{if(number%div==0)
printf("%d, ",div);
}
return div;
}
void main()
{
int i,n1,n2;
printf("Введите начальное значение:");
scanf("%d",&n1);
printf("Введите конечное значение:");
scanf("%d",&n2);
for(i=n1;i<=n2;i++)
{deliteli(i);
getche();
}
if(n1==n2)
deliteli(n1);
}[/codebox]

ФУНКЦИЯ "DELITELI" ДОЛЖНА БЫТЬ РЕКУРСИВНОЙ.
 
G

Guest

void deliteli(int arg)
{
int i,d;
for(i=(arg-1);arg%i!=0;i--);
d=arg/i;
printf("%d",d);
If (i!=1) deliteli(d);
return;
}
не писал на си давно, мож что накосячил.
Твое творение и в нерекурсивном виде корректно работать не будет
либо я сам задачу не понял
данная ф-я выведет по порядку разложение числа на простые сомножители, не сохраняя в памяти этих самых сомножителей
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!