新手,求解

notfree1430285724 2015-12-20 02:39:34
c语言
绝对素数

题目描述:绝对素数是指本身是素数,其逆序数也是素数的数。例如:107与701是绝对素数。要求编写一个能判断某个整数是否为素数的函数,
再写一个函数求出某整数的逆序数,并用它们求出所有[m,n]范围之内的绝对素数。
输入描述:输入两个正整数m和n,其中m<n。
输出描述:输出[m,n]之间的绝对素数。
样例输入:105 120
样例输出:
107
113
...全文
352 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fly_dragon_fly 2015-12-21
  • 打赏
  • 举报
回复
求范围一般是建议先用筛法得到素数
const int MP=1e6;
bool vis[MP];
void sieve()
{
    for(int i=2,ie=sqrt(MP+0.5);i<=ie;i++)if(!vis[i]){
        for(long long j=(long long)i*i;j<=MP;j+=i) vis[j]=1;
    }
}
int rev(int n,int r=0){
    return n ? rev(n/10,r*10+n%10) : r;
}
int count(int m,int n){
    int ans=0;
    for(int i=m;i<=n;i++){
         if(!vis[i]&&!vis[rev[i]]) ++ans;
    }
    return ans;
}
_郭 2015-12-20
  • 打赏
  • 举报
回复
纠正一个错误,刚才没有做详细的测试 第45行 for (int i = 2; i < number; i++) i应该初始为2,否则4也会被判断为素数 @thefirstz 希望版主能给更改一下,谢谢。
_郭 2015-12-20
  • 打赏
  • 举报
回复
虽然论坛不鼓励帮别人做作业,但由于一直是在论坛问问题,偶尔见一个自己能回答的,就试一下!也是复习自己刚学过知识。 程序加了一些简单的注释,你最好看一下实现的方法,然后自己清晰了之后再自己写一遍。 最后声明一下,我也是新手,有不足之处望指点。
//求m,n之间的绝对素数(包括m,n)
#include <stdio.h>
int prime(int number); //判断一个数是否为素数,1为真0为假
int num_back(int number); //取一个数的反数
void fun(int m, int n); //输出两个数之间的绝对素数
int main(void)
{
	//没有做输入确认
	int m,n;
	scanf("%d",&m);
	getchar();//接受两数的间隔符
	scanf("%d",  &n);
	fun(m, n);
	return 0;
}
void fun(int m, int n) //输出两个数之间的绝对素数
{
	while (m <= n)
	{
		if (prime(m))//判断是否为素数
			if (prime(num_back(m)))//取反后再判断是否为素数
				printf("%d\n", m);//都成立即为绝对素数,输出
		m++;
	}

}
int num_back(int number) //取一个数的反数
{
	int a = 0, b = 0;
	while (number)
	{
		a = number % 10;//取number的最后一位
		b = b * 10 + a;  //增加权重
		number = number / 10; //去掉number的最后一位
	}
	return b;
}
int prime(int number) //判断一个数是否为素数,1为真0为假
{
	int bool_i = 0;
	if (number < 2) //小于2返回假
		return 0;
	else if (number == 2)  //等于2直接返回真
		return 1;
	for (int i = 3; i < number; i++) //
		if ((number%i) == 0) //如果能被3到number之间的数整除就返回假
		{
			bool_i = 0;
			break; 
		}
		else
			bool_i = 1;
	return bool_i;
}

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧