在数比较大的时候,一般的素数只需要比较到数的根号即可,如下代码
#include <stdio.h>
#include <math.h>
int main(){
unsigned int a,b,c;
int j,k;
scanf("%d",&a);
for(int i=2;i<a;i++){
for(j=2;j<=sqrt(i);j++){
if(i%j==0){
break;
}else{
continue;
}
}
if(j>sqrt(i)){
int b=a-i;
for(k=2;k<=sqrt(b);k++){
if(b%k==0){
break;
}else{
continue;
}
}
if(k>sqrt(b)){
printf("%d = %d + %d",a,i,b);
break;
}
}
}
return 0;
}
当处理大数时,判断素数的方法可以通过只检查到其平方根来优化。这是因为如果一个数不是素数,那么它必定可以表示为两个因数的乘积,至少有一个因数小于或等于它的平方根。这段代码展示了这种优化策略。
312

被折叠的 条评论
为什么被折叠?



