Программа распознавания простого числа - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Коллеги,сочинил алгоритм на предмет является ли введенное число простым.Нормально или не очень?
#include <stdio.h>
#include <math.h>
int main()
{
 
 int b;
 printf ("Vvod chisel: ");
 scanf("%d",&b);
 if (b%2==0||b%3==0||b%5==0||b%7==0||b%9==0)
 {
    printf("\nNo");
 }
 else
 printf("\nYes");
    return 0;
}

Решение задачи: «Программа распознавания простого числа»

textual
Листинг программы
int is_prime(unsigned n) {
    unsigned x = 2;
 
    if ( n < x )
        return 0;
    else {
        while ( x * x <= n ) {
            if ( n % x == 0 )
                return 0;
            ++x;
        }
    }
 
    return 1;
}

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

  1. Функция is_prime принимает целочисленный аргумент n типа unsigned и возвращает булево значение - 1 если число n является простым, и 0 в противном случае.
  2. Переменная x инициализируется значением 2.
  3. В условии if ( n < x ) проверяется, является ли число n меньше переменной x. Если это так, то функция возвращает 0, так как число n не может быть простым.
  4. В блоке else выполняется цикл while, который выполняется до тех пор, пока x * x меньше или равно n.
  5. В условии цикла if ( n % x == 0 ) проверяется, делится ли число n на переменную x без остатка. Если это так, то функция возвращает 0, так как число n не является простым.
  6. Переменная x инкрементируется на единицу с помощью оператора ++x.
  7. После выхода из цикла while функция возвращает 1, так как число n не было найдено ни одного делителя, и следовательно, является простым.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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