РЕКУРСИЯ

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

subval

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

ВОТ КОД НА С:

[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

#3
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;
}
не писал на си давно, мож что накосячил.
Твое творение и в нерекурсивном виде корректно работать не будет
либо я сам задачу не понял
данная ф-я выведет по порядку разложение числа на простые сомножители, не сохраняя в памяти этих самых сомножителей