@churchhela

Почему не работает мой код С?

нужно сделать программу которая разложит любое число на простые множители
#include <stdio.h>
int main(void){
    int nUm,d;
    scanf("%d", &d);
    d=2;
    while (nUm >= 1){ //цикл вывода простых делителей
        if(nUm % d == 0){
            printf("%d", d);//распечатываем простой делитель
            nUm = nUm % d;// делим на него
                d=2; //обнуляем переменную d
        }else{
            d++;
        }
    }
    return 0;
}
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
http://dilbert.com/strip/1998-08-24
Судя по коду, там где написано scanf("%d", &d); имелось в виду scanf("%d", &nUm);.

nUm = nUm % d;// делим на него

Здесь должно быть написано nUm = nUm / d;// делим на него

Кроме того, d может делить nUm больше чем 1 раз, это можно проверить сразу, и разделить nUm на d столько раз, сколько можно. Тогда не надо будет делать этого:
d=2; //обнуляем переменную d
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@galaxy
nUm где инициализируется? (это основная проблема)

d=2; //обнуляем переменную d

зачем?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы