【发布时间】:2015-03-01 14:22:13
【问题描述】:
#include<stdio.h>
#include<math.h>
int main(){
long long n,a,i,f;
scanf("%lld",&n);
while(n--)
{
f=0;
scanf("%lld",&a);
for(i=2;i<=sqrt(a);i++){
if(a%i==0){
f=1;
break;
}
}
if(f==0){
printf("YES\n");
}
else
printf("NO\n");
}
return 0;
}
输入的第一行是测试用例的数量。最大测试用例数 = 500, 0YES,否则为NO。
这是我的代码,每次提交时都会得到错误的答案。
Sample Input (Plaintext Link)
5
2
3
4
5
6
Sample Output (Plaintext Link)
YES
YES
NO
YES
NO
【问题讨论】:
-
对于大整数值,您需要
long long5*10^9 -
尝试使用 long long int(或简称 long long),在 google 搜索中 long int 的范围是 4,294,967,295,略小于约束。
-
哪个输入不起作用?
-
只是为了减少运行时间而不是在循环中使用
sqrt(a),在外面找到它并将其存储在一个变量中并在循环中使用它 -
提供一个失败的例子。
标签: c