全wa,求助大佬
查看原帖
全wa,求助大佬
1051105
chenshihao20110204楼主2023/8/18 10:22

这是我的源代码



include<bits/stdc++.h>
using namespace std;1. 
bool sushu(int a);//自创函数,判断是否为素数
int weishu(int a);//判断位数
int main()
{
	int a,b;//起始值和结束值
	cin>>a>>b;
	for(int i=a;i<=b;i++)
	{
		if(i==8)
		{
			cout<<11<<endl;//特判输出11,因为偶数位的数只有11是回文素数
		}
		if(i==9999999)//题目范围最大到一亿,所以算到7位数就行了
		{
			break;
		}
		if(weishu(i)%2==0)//如果是偶数位,那么值乘以10,因为偶数位只有一个回文素数11
		{
			i*=10;
		}
		switch(weishu(i))//判断是否为回文素数
		{
		case 1:
			{
				if(sushu(i))//一位数只用判断是否为素数即可
				{
					cout<<i<<"\n";
				}
				break;
			}
		case 3://三位数判断百位和个位是否相等,并且判断是否为素数
			{
				if(i/100==i%10&&sushu(i))
				{
					cout<<i<<"\n";
				}
				break;
			}	
		case 5://五位数判断万位与个位是否相等,并判断千位与十位是否相等,最后判断是否为素数
			{
				if(i/10000==i%10&&i/1000%10==i%100/10&&sushu(i))
				{
					cout<<i;
				}
				break;
			}
		case 7://七位数要判断百万位和个位,十万位和十位,万位和百位,以及是否为素数
			{
				if(i/1000000==i%10&&i/100000%10==i/100%10&&i/10000%10==i%1000/100&&sushu(i))
				{
					cout<<i<<endl;
				}
				break;
			}
			}
	}
}
bool sushu(int a)
{
	for(int i=2;i*i<=a;i++)
	{
		if(a%i==0)
		{
			return false;
		}
	}
	return true;
}//自创函数,判断是否为素数
int weishu(int a)
{
	int sum=0;
	while(a>10)
	{
		a/=10;
		sum++;
	}
	return sum;
}//自创函数,判断位数

有大佬的话,帮一帮吧

2023/8/18 10:22
加载中...