Я пытаюсь написать программу на C, которая сводит число к минимальным факторам. Пока что я написал следующий код:
#include <stdio.h>
void main(){
unsigned int parameter = 30, number, divisore = 2, contatore = 0, i = 0;
int divisori[(number/2) + 1];
number = parameter;
while(divisore <= (number / 2)){
if(number % divisore == 0){
contatore++;
number = number / divisore;
}
else{
divisori[divisore] = contatore;
contatore = 0;
divisore++;
}
}
}
Но у меня ошибка сегментации. Кажется, проблема связана со строкой:
number = number / divisore;
Как будто я заменяю его на:
printf("New number: %d", number/divisore);
Программа работает.
число / делитель будет int, так как число% делитель равно 0, поэтому не может быть, потому что операция возвращает десятичное число, но я не могу найти, в чем проблема. Не могли бы вы помочь мне?