pprime.cpp

来自「USACO chapter one.May hope it useful to 」· C++ 代码 · 共 80 行

CPP
80
字号
/*
ID: chenkai4
PROG: pprime
LANG: C++
*/
#include <stdio.h>
#include <cmath>
int A,B;

int power(int a,int b)
{
	int ans=1;
	for(int c=1;c<=a;c++)
		ans*=b;
	return ans;
}
int pf(int what,bool y,int len)
{
	if(y)
	{
		int ans=0;
		int b=power(len-1,10),fuck=what;
		while(what)
		{
			ans+=(what%10)*b;
			what/=10;
			b/=10;
		}
		return (fuck*power(len,10)+ans);
	}
	else
	{
		int ans=0;
		int b=power(len-1,10),fuck=what;
		what/=10;
		while(what)
		{
			ans+=(what%10)*b;
			what/=10;
			b/=10;
		}
		return (fuck*power(len,10)+ans);
	}
}
bool check(int what)
{
	for(int a=2;a<=sqrt((double)what);a++)
		if(what%a==0) return false;
	return true;
}
int main()
{
	freopen("pprime.in","r",stdin);
	freopen("pprime.out","w",stdout);
	scanf("%d%d",&A,&B);
	char temp[9];int l,t,maxb,b,fuck;
	for(int a=1;a<=8;a++)
		if(a%2==0)
		{
			maxb=power((a/2),10);
			for(b=power((a/2)-1,10);b<maxb;b++)
			{
				fuck=pf(b,true,a/2);
				if(fuck<=B&&fuck>=A&&check(fuck))
					printf("%d\n",fuck);
			}
		}
		else
		{
			maxb=power((a/2)+1,10);
			for(b=power((a/2),10);b<maxb;b++)
			{
				fuck=pf(b,false,a/2);
				if(fuck<=B&&fuck>=A&&check(fuck))
					printf("%d\n",fuck);
			}
		}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?