待修正,存在运行超时的问题

#include<iostream>
#include<math.h>
bool issushu(long long n){
    int i;
    for(i=2;i<n;i++){
        if(n%i==0){
            return false;
        }
    }
    return true;
}
int main(){
    int n,i=0,j,k;
	long long sum1=0,sum2=0,sum=0;//i用来计数,sum用于计算回文数大小 
    scanf("%d",&n);
    int a[17]={0};
    int b[10]={0};
    while(n!=0){
        a[i++]=n%10;
        n=n/10;
    }
	for(j=0;j<i;j++){//以12721为例,这部分计算出721 
		sum1+=a[j]*pow(10,i-j-1);
	} 
	for(k=i-1,j=0;k>0;k--){//倒过来将12赋值给b 
		b[j++]=a[k];
	}
	for(k=0;k<i-1;k++){//求出12 
		sum2+=b[k]*pow(10,i-k-2);
	}
	sum2=sum2*pow(10,i);
	sum=sum1+sum2;
	if(issushu(sum)){
		printf("prime");
	}else{
		printf("noprime");
	}
}
全部评论

相关推荐

牛客963010790号:为什么还要收藏
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务