问题描述
#include <stdio.h>
#include <math.h>
bool isPrime(long long int n) {
if(n <= 1) {
return false;
} else {
for(long long int i = 2; i <= sqrt(n); i++) {
if(n % i == 0) {
return false;
}
}
}
return true;
}
int main() {
int cases;
long long int num;
scanf("%d",&cases);
for(int i = 0; i < cases; i++) {
scanf("%lld",&num);
if(isPrime(num)) {
printf("YES\n");
} else {
printf("NO\n");
}
}
return 0;
}
有什么办法可以使此代码运行更快?我尝试了Eratosthenes的Sieve算法,但速度较慢,显然,这种“尝试将数字从2除以其平方根的方法”速度更快,但根据在线判断,速度不够快。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)