Найти наименьший делитель введенного пользователем целого положительного числа - C (СИ)
Формулировка задачи:
Товарищи, помогите пожалуйста) Задание следующее:
Написать программу, которая находит наименьший делитель (начиная с 2-х) введенного пользователем целого положительного числа. Для этого организовать цикл, который заканчивается, когда текущее значение некоторой переменной является делителем числа, и это число увеличивается на 1 на каждом шаге цикла.
Как я понимаю, в моем случае цикл заканчивается после первого же исполнения. А как сделать так, чтобы цикл исполнялся до момента, пока условное выражение ложно и не станет истинным?
main()
{
int a, b, min;
printf("Введите целое положительное число: ");
scanf("%i",&a);
min = a;
for(b=2; a % b; b++)
min = (b < min) ? b : min;
printf("Наименьший делитель числа %i равен %i", a, min);
}Решение задачи: «Найти наименьший делитель введенного пользователем целого положительного числа»
textual
Листинг программы
#include <stdio.h>
int main (void) {
int i, n;
printf ("enter the number\n> ");
scanf ("%d", &n);
for (i = 2; i <= n && (n % i != 0); i++) ;
printf ("%d\n", i);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- #include
Указывает компилятору включить в программу функции файла стандартного ввода/вывода, нужные для отправки сообщений в консоль - int main (void) Функция main() является точкой входа, с неё начинается выполнение любой программы на C
- printf (
enter the number\n>); Выводит сообщение с приглашением пользователю ввести число - scanf (
%d, &n); Считывает введенное пользователем число и сохраняет его в переменной n типа int - for (i = 2; i <= n && (n % i != 0); i++) ; Цикл for для нахождения наименьшего делителя числа n. Переменная i инициализируется значением 2, затем она увеличивается на единицу после каждой итерации цикла. Условие цикла требует, чтобы цикл продолжался, пока i меньше или равно n, и n не делится на i без остатка. Как только число делится на i без остатка, цикл прекращается и i получает последнее значение, которое является наименьшим делителем
- printf (
%d\n, i); Выводит на экран значение i, которое является наименьшим делителем числа n - return 0; Обозначает успешный конец работы программы