for(i=1;i<=y;i++){
dt = dt * x;  
}
これは何なの? 同じことを何回も繰り返してさ。
読みにくいプログラムだな。