为什么会超时啊明明算法简洁啊该如何解决

为什么会超时啊,明明算法简洁啊
#include<stdio.h>
int main()
{
  int i,A,B,f1,f2,f3;
  long n;
  while(scanf("%d%d%d",&A,&B,&n)==3)
  { 
  if(n==0&&A==0&&B==0)break;
  else{  
  f1=1;
  f2=1;
  for(i=3;i<=n;i++)  
  {
  f3=(B*f1+A*f2)%7;  
  f1=f2;  
  f2=f3;  
  }  
  printf("%d\n",f2);  
  }  
  }  
  system("pause"); 
  return 0; 
}


------解决方案--------------------
看楼主的结贴率就算了。打个广告:每天回帖,加10分可用分。顺便问句,你这题目是做什么的呢?都不知道要干什么,你就问为什么会超时。
------解决方案--------------------
C/C++ code
#include <stdlib.h>
#include<stdio.h>
int main()
{
    int i,A,B,f1,f2,f3;
    long n;
    while(scanf("%d%d%d",&A,&B,&n)==3)
    {  
        if(n==0&&A==0&&B==0)
            break;
        else
        {   
            f1=1;
            f2=1;
            for(i=3;i<=n;i++)   
            {
                f3=(B*f1+A*f2)%7;   
                f1=f2;   
                f2=f3;   
            }   
            printf("%d\n",f2);   
        }   
    }   
    system("pause");  
    return 0;  
}

------解决方案--------------------
lz 计时的那一段,程序中又是等待输入又是 pause 的