check divisor , only if it is not visited yet if i is divisor of val , then val / i will be its bigger divisor
if ( t . val % i == 0 && st . find ( t . val / i ) == st . end ( ) ) { q . push ( data ( t . val / i , t . steps + 1 ) ) ; st . insert ( t . val / i ) ; } } } }