提问:No - Output Limit Exceed解决思路

提问:No - Output Limit Exceed
No - Output Limit Exceed
题目:

Description 

一个整数可唯一地分解为一些不同质因子的若干次方的乘积。即:对于一个大于1的整数a,可表示为:
 a = p1^e1*p2^e2…pr^er
其中:pi中为质数,p1< p2<…<pr,ei为正整数
例如:6000 = 2^4*3^1*5^3


Input 

第1行:整数T(1≤T≤10000)为问题数
第2 ∽ T+1行:每个问题的a,2≤a≤20000。


Output 

对于每个问题,在一行中输出pi和ei。
格式:(p1,e1)(p2,e2)…(pr,er)


Sample Input 

3
2
6000
19997 

Sample Output 

(2,1)
(2,4)(3,1)(5,3)
(19997,1) 
我的解答:
#include <stdio.h>
#include<math.h>
int main()
{
int prime[3000]={2};
int power[20001]={0};
int i,j,q,k,t,m,flag;
q=1;
for(j=3;j<=20000;j++)
for(i=2;i<=sqrt((double)j)+1;i++)
{
if(j%i==0)break;
if(i>=sqrt((double)j))
{prime[q]=j;
q++;}
}  
scanf("%d",&t);
for(;t>0;t--)
{
flag=0;
scanf("%d",&m);
for(i=0;i<q;i++)
{
if(m==prime[i])
{
printf("(%d,1)\n",m);
flag=1;
break;
}
}
if(flag==0)
{
for(i=0;i<q;i++)
{
while(m%prime[i]==0)
{m=m/prime[i];
power[i]++;
}
if(m==1)
{
for(k=0;k<=i;k++)
if(power[k]!=0)
printf("(%d,%d)",prime[k],power[k]);
printf("\n");
break;
}
}
}
}
return 0;
}
问题:运行正确(在有效范围内)
在oj上不能通过? 这样:No - Output Limit Exceed
求解答!!!

------解决方案--------------------
哪个oj上的