Secvența pentru a)
int Palindrom(int n){
int t=0, s=n;
while(n>0){
t = t*10+n%10;
n = n/10;
}
return t==s;
}
secvența pentru b)
int max=0, t;
ifstream f("numere.in");
ofstream g("numere.out");
while(!f.eof()){
f>>t;
if(Palindrom(t) && t>max) max = t;
}
g<<t;
Cred că te descurci să le așezi în program de aici :))