求解析,代码功能为求N的N次方的个位数。该如何解决

求解析,代码功能为求N的N次方的个位数。
#include<stdio.h>
int main()
{
  int n,t,i,pro;
  long m;
  scanf("%d",&n);
  while(n--)
  {
  pro=1;
  scanf("%ld",&m);
  t=(m-1)%4;
  m=m%10;
  for(i=0;i<=t;i++)
  pro*=m;
  printf("%d\n",pro%10);
  }
  return 0;
}

------解决方案--------------------
任意整数的整数次幂在个位上都有一个特色:随着指数的递增,个位上会出现重复,重复的周期分别为1、2、4。

所以,程序里求个位幂只需要计算最多4次乘法。t=(m-1)%4就是起这个作用的。

后面的东西就没啥需要说的了吧?