Распечатать все натуральные числа меньшие x, при делении на которые число x дает составной остаток - C (СИ)
Формулировка задачи:
Вариант №26
Ввести натуральное число x. Распечатать все натуральные числа меньшие x, при делении на которые число x дает составной остаток.
Решение задачи: «Распечатать все натуральные числа меньшие x, при делении на которые число x дает составной остаток»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
bool issimpl(int n)
{
int count = 0;
for (int div = 1; div <= n; div++)
if ((n % div) == 0) count++;
return count == 2 ? 1 : 0;
}
int main()
{
int x = 0;
printf("x = "); scanf("%d",&x);
for (int t = 1; t < x; t++)
if (!issimpl(x / t)) printf("%d ",t);
printf("\n");
_getch();
return 0;
}
Объяснение кода листинга программы
В этом коде:
- В функции
issimpl(int n)осуществляется проверка, является ли числоnпростым. Для этого переменнойcountинициализируется значение 0, а затем в цикле от 1 доnпроверяется, делится лиnна каждое из этих чисел без остатка. Если делится, то значениеcountувеличивается на 1. В конце функции возвращается значение 1, еслиcountравно 2 (число простое), и 0 в противном случае. - В функции
main()переменнойxприсваивается значение, которое вводит пользователь. - Затем в цикле (от 1 до
x, но не включаяx) проверяется, является ли число делителемxи не является простым. Если да, то оно выводится на экран. - В конце программы вызывается функция
_getch(), которая ожидает нажатия клавиши, и программа завершается.