天天看點

(百例程式設計)32.可逆素數

題目:求四位的可逆素數。可逆素數指:一個素數将其各位數字的順序倒過來構成的反序數也是素數。本題的重點不是判斷素數的方法,而是求一個整數的反序數。

/*求四位的可逆素數。可逆素數指:一個素數将其各位數字的順序倒過來構成的反序數也是素數
。本題的重點不是判斷素數的方法,而是求一個整數的反序數。
*/

#include <iostream>
using namespace std;

int is_zhi(int a);

int main(void)
{
	int a[4],s;
	for (int i=1000;i!=10000;++i)
	{
		if (is_zhi(i))
	  {
	
		for (int j=0,k=1;j!=4;k*=10,++j)
		{
			a[j]=i/k%10;
		}

        s=a[0]*1000+a[1]*100+a[2]*10+a[3];
          if (is_zhi(s))
          {
			  cout<<i<<"為可逆素數!"<<endl;
          }
	  }
		else
			continue;
		
	}
	return 0;
}
/*int main(void)
{
	for (int i=2;i!=999;++i)
	{
		if (is_zhi(i)&&is_zhi(i+2))
		{
			cout<<i<<"和"<<(i+2)<<"為孿生素數!"<<endl;
		}
	}
}*/

int is_zhi(int a)
{
	for (int i=2;i<=a/2;++i)
	{
		if (a%i==0)
		{
			return 0;
		}
		if (i==a/2)
		{
			return 1;
		}
	}
}
           

繼續閱讀