#include
int main()
{
unsigned long int a,b,c;
unsigned long i;
printf ("please input a,b \n");
scanf("%ld%ld",a,b);
a = (a%10000);
b = (b%10000); //计算a的b次方的最后4位数,太多位数无意义
c = 1;
for (i=0;i c=c*(b%10000);
c = c%10000;
}
printf ("The last 4 digitals is %d\n",c);
另外for (i=0;i其实比如5^9 可以用
5*5 = 25
25*25 =X
X*X = 5^8
5^8*5 = 5^9
具体算法自己研究吧
#include
main()
{
long int a,b,c;
printf("please insert a,b");
sanf("ld%ld%",&a,&b);
c=pow(a,b)%1000;
}
#include
void main()
{
int p,q,i,k=1;
printf("please insert a b");
scanf("%d%d",&p,&q);
for(i=1;i<=q;i++)
k=(k*p)%10000;
printf("%d",k);
}
#include "stdio.h"
main()
{
long a,b;
long i,total=1;
scanf("%ld%ld",&a,&b);
a=a%10000;
{for(i=1;itotal=total*a;
total=total%10000;
}
printf("%ld\n",total);
}
a和b较大,不能用int,2楼的错了。至于3楼嘛,是i<=b,想想如果b=1的话……。修改一下:
#include "stdio.h"
main()
{
long a,b;
long i,op=1;
printf("Input number a:");
scanf("%ld",&a);
printf("Input number b:");
scanf("%ld",&b);
a=a%10000;
for(i=1;i<=b;i++)
{op=op*a;
op=op%10000;
}
printf("%ld\",op);
}
#include
{int a,b,c,n;
scanf("%d,%d",&a,&b);
n=pow(a,b);
printf("%d",n%1000);
}