Разложить натуральное число на простые множители - C (СИ)
Формулировка задачи:
Задание:
Дано натуральное число n. Разложить его на простые множители
Я это задание реализовал так, но почему то не работает, просто не выводит результат на экран. помогите пожалуйста найти ошибку, заранее спасибо
#include <stdio.h> #include <math.h> main() { double N, i, x; i=2; printf("Vvedite naturalnoe chislo"); scanf ("%f", &N); while (N > 1) { x=fmod (N,i); if (x=0) { printf("%f", &i); N/=i; } else i+=1; } system("pause"); }
Решение задачи: «Разложить натуральное число на простые множители»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <cstdlib> int main() { int t,i=2; printf("Enter YOUR number:\n"); scanf("%d",&t); printf("%d = ",t); while(i<=t) { if(t%i==0) { printf("%d",i); t=t/i; if(t>1) printf("*"); } else i=i+1; } return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и стандартными функциями
- Объявление переменных: t (входное число), i (переменная для цикла), buf (неизвестная нам переменная, возможно, для хранения результата разложения на множители)
- Вывод сообщения с просьбой ввести натуральное число
- Считывание входного числа с помощью функции scanf
- Вывод сообщения о начале разложения числа на множители с заданным числом
- Организация цикла по переменным i от 2 до t
- Проверка, делится ли t на i без остатка
- Если да, то выводится i (простой множитель), t делится на i и i увеличивается на 1
- Если нет, то i увеличивается на 1
- Цикл продолжается, пока i меньше или равно t
- Если t больше 1, то выводится символ
*
(для отмечения повторяющихся множителей) - После окончания цикла выводится t (результат разложения на множители)
- Программа возвращает 0, что означает успешный конец работы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д