烦请大神们看一下这段平方乘算法的代码哪里有问题??
这段平方乘代码计算总是有错误,请大神们帮忙看看!一运行这个程序就显示程序已停止工作是为什么?
#include <iostream>
#include <cstdlib>
using namespace std;
int main ()
{ int f , a , b , N , i , d , e , Y , g ,j ,c;
int AT1 [1025];
cout <<"请输入底数和指数:"<<endl;
cin >> b ;
cin >> f ;
cout << "请输入除数:" <<endl;//输入变量;
cin >> N ;
a = f;
e = f;
for (i = 1;a / 2 != 0;++i ){a /= 2;}//判断a的二进制表示的位数;
cout << i << '\t' <<endl;
for (c = 0;e / 2 != 0;++c){d = e % 2;//输出二进制数;
e /= 2;
for (j = 1;j < i;++j){AT1 [j] = d;//存储每一位二进制数位;
}
cout << d << '\t' <<endl;}
cout << "1" << '\t' <<endl;
AT1[i] = 1;
Y = 1;
for (g = i;g >> 0;g = g - 1) {Y = ((Y % N) % (Y % N)) % N;
if (AT1[g] == 1) Y = Y * b % N;}//平方乘算法
cout << "余数是:"<< Y;
return 0;
}