这是NEUQ OJ上的一道题,编译和运行结果都没问题。但在平台上试了几十次都通过不了,有大神帮我看一下吗?
题目描述:gold学长从昏迷中醒来以后发现自己被困在一个山洞里,他找了很久,终于找到一个门。门上写着:想要逃出去,只有一个办法 你可以选择一个数n,设m=1 * 2 * ... * (n-1)。如果m是n的倍数,那么门就会自动打开,否则你就别想出去了。 gold学长内心充满了绝望,他想了一些数,但他不知道这些数能不能保证自己逃出去。你能帮助gold学长逃出生天吗?
输入:
第一行一个数T(T<=1000),表示gold学长想的数的个数 接下来每一行一个数n(2<=n<=1e8),表示gold学长想的数
输出:
每行一个输出 对于每一个数,如果学长能逃出去,则输出“escape”(不含引号),否则输出“trapped”(不含引号)
样例输入
4
5
6
7
8
样例输出
trapped
escape
trapped
escape
下面是我写的代码:
#include<stdio.h>
int main()
{
int T,m,i,j,r;
int n[1000];
// printf("输入glod学长想的数的个数T=");
scanf("%d",&T);
while(T<=0||T>1000)
{
scanf("%d",&T);
}
for(j=0;j<=(T-1);j++)
{
// printf("请输入想输入的数n=");
scanf("%ld",&n[j]);
while(n[j]<2||n[j]>1e8)
{
scanf("%ld",&n[j]);
}
}
for(j=0;j<=(T-1);j++)
{
m=1;
for(i=1;i<(n[j]-1);i++)
{
m=m*i;
}
r=m%n[j];
if(r==0)
printf("escape\n");
else
printf("trapped\n");
}
return 0;
}