Ни один из действующих числовых типов данных вам не подойдет (даже int64 позволяет работать лишь с восемнадцатизначными числами). Следовательно нужно хранить число в строке или в массиве, и, реализовать функционал по выполнению операций над этими данными.
#include <iostream>
using namespace std;
bool check(const int &n)
{
bool b = true;
int ch = n;
int de = n % 10;
while (ch > 0 && b) {
if (de == 0) {
b = false;
}
else if (n % de != 0) {
b = false;
} else {
ch /= 10;
de %= 10;
}
}
return b;
}
int main()
{
int a, b, k = 0;
cin >> a >> b;
for (int i = a; i < b; ++i) {
if (check(i)) {
cout << i << " ";
++k;
}
}
if (k == 0) {
cout << "-" << endl;
}
return 0;
}
var i,j:integer;
a:array[1..6,1..10]of integer;
begin
for i:=1 to 6 do
for j:=1 to 10 do
a[i,j]:=(i-1)*10+j ;
for i:=1 to 6 do
begin
for j:=1 to 10 do
write(a[i,j]:4);
writeln
end;
end.
Program X;
var
k,n,i,j:longint;
mas:array[1..10000] of longint;
begin
read(n);
for i:=1 to 10000 do
mas[i]:=0;
mas[10000]:=1;
for j:=1 to n do
begin
for i:=1 to 10000 do
mas[i]:=mas[i]*j;
for i:=10000 downto 2 do
begin
mas[i-1]:=mas[i-1]+mas[i]div 10;
mas[i]:=mas[i]mod 10;
end;
end;
i:=1;
while mas[i]=0 do
i:=i+1;
for j:=i to 10000 do
write(mas[j])
<span>end.</span>
1)
spisok = [int(i) for i in input().split()]
spisok2 = spisok[::2]
print(*spisok2)
2)
spisok = [int(i) for i in input().split()]
spisok2 = filter(lambda x: x%2==0, spisok)
print(*spisok2)
3)
spisok = [int(i) for i in input().split()]
spisok2 = filter(lambda x: x>0, spisok)
print(len(list(spisok2)))