88分最后一个TLE求调(P1217)
查看原帖
88分最后一个TLE求调(P1217)
1414057
lownew楼主2025/1/17 10:26

本人第一篇帖子,主题为P1217的代码求调,调不好就去学新算法了(宜:学新算法 看一遍就懂了) 最后一测试点TLE,其它全AC(QAQ) 代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int a,b;
	cin>>a>>b;
	bool flag=0; 
	for(int i=a;i<=b;i++)
	{
		int x=i,y=0;
		flag=0;
		while(x!=0)
		{
			y*=10;
			y+=x%10;
			x/=10;
			
		}
		if(y==i)
		{
			flag=1;
		}
		else
		{
			continue;
		}
		for(int j=2;j*j<=i;j++)
		{
			if(i%j==0)
			{
				flag=0;
			}
		}
		if(flag==1)
		{
			cout<<i<<endl;
		}
	}
	return 0;
}

讲解一下: 这个不多说了

#include<bits/stdc++.h>//万能头
using namespace std;//命名空间

定义变量

    int a,b;//a为起始值,b为终止值
    cin>>a>>b;//输入a,b
    bool flag=0;//判断是否为回文质数

判断过程

for(int i=a;i<=b;i++)//判断所有数
	{
		int x=i,y=0;//定义x为i的替身,y为回文下来的数
		flag=0;//把是否为回文质数设为不是
		while(x!=0)回文开始
		{
			y*=10;//把y扩大十倍,“迎接”下面加进来的数
			y+=x%10;//加进x的个位
			x/=10;//把x的个位丢掉
		}
		if(y==i)//判断是否回文之后跟原来数一样
		{
			flag=1;//一样的话,把回文质数设为是
		}
		else//不然
		{
			continue;结束这次判断
		}
		for(int j=2;j*j<=i;j++)//判断质数
		{
			if(i%j==0)//这个不多说了,如果除尽
			{
				flag=0;//他就不是质数,也不是回文质数
			}
		}
		if(flag==1)//如果最后判断出是回文质数
		{
			cout<<i<<endl;//输出,换行
		}
	}

最后的最后

    return 0;//养成好习惯

这时间复杂度也不是很高呀 求dalao看到 求dalao回复 求dalao讲解 求dalao不要把我当成xxs

求审核通过

2025/1/17 10:26
加载中...