Так как язык не указан, приведу пример на SWI-Prolog.
Код:
read_int(Int) :- read(Int), integer(Int).split_int_by_numbers(0, []) :- !.split_int_by_numbers(N, [Number|Ints]) :- Number is mod(N, 10), RestN is div(N, 10), split_int_by_numbers(RestN, Ints).test_to_div(_, []).test_to_div(N, [Number|Ints]) :- mod(N, Number) =:= 0, test_to_div(N, Ints). test(Int) :- split_int_by_numbers(Int, Numbers), test_to_div(Int, Numbers), write(Int), write(" - Yes!"), nl.test(Int) :- write(Int), write(" - No!"), nl.?- read_int(Int), test(Int).
#include "windows.h"
#include "locale.h"
int main(){
setlocale(0, "");
int n, a1, d, sum, A1, A2, an;
printf("Введите первый элемент прогрессии \n");
scanf_s("%i", &a1);
printf("Введите число элементов геометрической прогрессии \n");
scanf_s("%i", &n);
printf("Введите разность арифметической прогрессии \n");
scanf_s("%i", &d);
sum = ((2 * a1 + d*(n - 1)) / 2)*n;
an = a1 + d*(n - 1);
A1 = an - d;
A2 = an + d;
printf("Номер An-1 An An+1 sum \n");
printf("Значение %i %i %i %i \n", A1, an, A2, sum);
system("pause");
return 0;
}