可逆素数

/*
	主题:可逆素数是指将一个素数的各位数字顺序地倒过来,
		构成的反序仍然是素数,按以上要求所有的四位素数
	作者:karl
	邮箱:nixindong@hotmai.com
	开发环境:Visual Studio
	开发语言:C
	日期:2012-06-14
*/
#include <stdio.h>
#include <math.h>

typedef enum{TRUE = 1, FALSE = 0}boolean;

boolean prime(int value);
int reverse(int source);

int main(void)
{
	int i, counter = 0;
	
	for (i = 1000; i <= 9999; i++)
	{
		if (prime(i) && prime(reverse(i)))
		{
			printf("%6d", i);
			counter++;
			if (counter % 10 == 0)
			{
				putchar('\n');
			}
		}
	}


	return 0;
}

/*
	函数名称:prime
	函数功能:判断一个整数是否是素数
	函数参数:
			value:需要判断的值
	返回值:类型(boolean)
			TRUE:是素数
			FALSE:不是素数
*/
boolean prime(int value)
{
	int j;

	for (j = 2; j <= (int)sqrt(value); j++)
	{
		if (value % j == 0)
		{
			return FALSE;
		}
	}

	return TRUE;
}

int reverse(int source)
{
	int thou, hun, ten, digits;

	//取出原来的个位、十位、百位以及千位
	digits = source % 10;
	ten = (int)(source % 100) / 10;
	hun = (int)(source % 1000) / 100;
	thou = (int)source / 1000;

	return digits * 1000 + ten * 100 + hun * 10 + thou;
}

运行结果:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值