applying compound function on parts of list
MapAt[First @* Last @* FactorInteger, t1, {All, -1}]
{{1, 2}, {2, 5}, {3, 5}, {4, 17}, {5, 7}, {6, 41}, {7, 29}}
MapAt[FactorInteger /* Last /* First, t1, {All, -1}]
{{1, 2}, {2, 5}, {3, 5}, {4, 17}, {5, 7}, {6, 41}, {7, 29}}
Also
Transpose[{#, Map[First @* Last @* FactorInteger] @ #2}] & @@ Transpose[t1]
{{1, 2}, {2, 5}, {3, 5}, {4, 17}, {5, 7}, {6, 41}, {7, 29}}
Another option might be
max[y_] := Max[FactorInteger[y][[All, 1]]];
Cases[t1, {x_, y_} :> {x, max[y]}]
The same thing can be done using /.
t1 /. {x_, y_} :> {x, max[y]}
Another might be
{#[[1]], max[#[[2]]]} & /@ t1
In Mathematica, the rule of thumb is that there are at least 10 different ways to do the same thing. Which one is best can depend on what style you prefer and performance of each method.