Найти все простые делители числа - C (СИ)
Формулировка задачи:
Программа должна находить все простые делители числа.
Выводит не все делители и некоторые не верно..Что не так?
#include <stdio.h> int main() { int m; printf("Enter:"); scanf("%d",&m); int mas[m],a,b,c=0,e=0,i,f; for (b=1;b<=m;b++) mas[b]=b; for (a=1;a<=m;a++){ c=m%mas[a]; if(c==0){ for(i=2;i<a;i++){ f=mas[a]%i; if(f==0) ++e;} if(e==0) printf("%d ",mas[a]);}} }
Решение задачи: «Найти все простые делители числа»
textual
Листинг программы
#include <stdio.h> int main() { int m, f, i=2; printf("Enter:"); scanf("%d",&m); while(m!=1) { f=0; while(m%i==0) { f=1; m/=i; } if(f) printf("%d ", i); i++; } return 0; }
Объяснение кода листинга программы
Вывод программы: список простых делителей введённого числа.
- Объявлены три переменные: m (введённое число), f (флаг), i (счётчик).
- Пользователю предлагается ввести число.
- Цикл while (пока число не станет равным 1).
- В каждой итерации: a. Флаг f устанавливается в 0. b. Цикл while (пока число делится на текущий простой делитель без остатка). c. Если число делится без остатка, то: d. Флаг f устанавливается в 1. e. Число делится на текущий простой делитель. c. Цикл while завершается. d. Если флаг f был установлен в 1, то выводится текущий простой делитель. e. Счётчик i увеличивается на 1.
- Цикл while завершается, и программа возвращает 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д