求助,最后三个点一直显示超时。
查看原帖
求助,最后三个点一直显示超时。
613405
liuxiang007楼主2021/12/3 16:28
#include <stdio.h> 
int num1[1000000],num2[1000000],num3[1000000],num4[1000000],num5[100000];
int fact(int n)
{
	int i;
	for(i=2;i*i<=n;i++){
		if(n%i==0){
			break;
		}
	}
	if(i*i>n){
		return 1;
	}
	else{
		return -1;
	}
}
int main()
{
	int count=0,count3=0,i,j,k;
	int a,b;
	scanf("%d%d",&a,&b);
	for(i=a;i<=b;i++){
		if(fact(i)==1){
			num1[count] = i;
			count++;
		}
	}
	for(i=0;i<count;i++){
		num4[i] = num1[i];
	}
	for(i=0;i<count;i++)
	{
		int flag=1,count1=0;
		j=0;
		do{
			num2[j]=num1[i]%10;
			num1[i] = num1[i]/10;
			j++;
			count1++;
		}while(num1[i]!=0);
		for(k=0;k<count1;k++)
		{
			num3[k] = num2[count1-k-1];
		}
		for(k=0;k<count1;k++)
		{
			if(num3[k]!=num2[k]){
				flag = 0;
			}
		}
		if(flag==1){
			num5[count3] = num4[i];
			count3++;
		} 
	}
	for(i=0;i<count3;i++)
	{
		printf("%d\n",num5[i]);
	}
	return 0;
}
2021/12/3 16:28
加载中...