Проверить,можно ли из шестеричной записи числа (x) отбросить несколько первых цифр так,чтобы оно стало простым - C (СИ)
Формулировка задачи:
ПРОСТОЕ-делится только на самого себя и только на 1.
Решение задачи: «Проверить,можно ли из шестеричной записи числа (x) отбросить несколько первых цифр так,чтобы оно стало простым»
textual
Листинг программы
char buf[128];
int i, val;
scanf("%s", buf, 127);
for (i = 0; i < strlen(buf); i++)
{
sscanf(buf + i, "%d", &val);
if (Prime(val) == 1) { printf("Value: %s\n", buf + i); return 1; }
}
printf("No chance\n");
return 0;
Объяснение кода листинга программы
В этом коде:
char buf[128];- в этой строке объявляется массив символов, который будет использоваться для хранения строки, введенной пользователем.int i, val;- здесь объявляются две переменные:i- для хранения индекса текущего символа в строке, иval- для хранения числового значения текущего символа.scanf(%s, buf, 127);- эта функция считывает строку, введенную пользователем, и сохраняет ее в массивеbuf. Максимально возможное количество символов для чтения - 127.for (i = 0; i < strlen(buf); i++)- это цикл, который проходит по всем символам в строке.sscanf(buf + i,%d, &val);- эта функция пытается преобразовать текущий символ или набор символов в целое число и сохранить его в переменнойval. Если преобразование не удается, то вvalбудет сохранено значение 0.if (Prime(val) == 1)- здесь проверяется, является ли числоvalпростым. Если да, то выполняется следующий блок кода.printf(Value: %s\n, buf + i);- здесь выводится сообщение, содержащее найденное простое число.return 1;- если было найдено простое число, функция возвращает 1.printf(No chance\n);- если не было найдено простое число, выводится это сообщение.return 0;- в конце функции возвращается 0.