Найти наименьший делитель введенного пользователем целого положительного числа - 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;
}

Объяснение кода листинга программы

В этом коде:

  1. #include Указывает компилятору включить в программу функции файла стандартного ввода/вывода, нужные для отправки сообщений в консоль
  2. int main (void) Функция main() является точкой входа, с неё начинается выполнение любой программы на C
  3. printf (enter the number\n>); Выводит сообщение с приглашением пользователю ввести число
  4. scanf (%d, &n); Считывает введенное пользователем число и сохраняет его в переменной n типа int
  5. for (i = 2; i <= n && (n % i != 0); i++) ; Цикл for для нахождения наименьшего делителя числа n. Переменная i инициализируется значением 2, затем она увеличивается на единицу после каждой итерации цикла. Условие цикла требует, чтобы цикл продолжался, пока i меньше или равно n, и n не делится на i без остатка. Как только число делится на i без остатка, цикл прекращается и i получает последнее значение, которое является наименьшим делителем
  6. printf (%d\n, i); Выводит на экран значение i, которое является наименьшим делителем числа n
  7. return 0; Обозначает успешный конец работы программы

Оцени полезность:

9   голосов , оценка 3.778 из 5
Похожие ответы