如何解决在确定大数是否为质数时,如何使C代码运行更快?
#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 举报,一经查实,本站将立刻删除。