怎么用C语言 输入两个正整数m和n,输出区间[m,n]内的所有可逆素数

 我来答
White_MouseYBZ
2014-04-07 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6648万
展开全部
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
bool prime(int n){
int i;
if(n>2 && !(n&1) || n<2) return false;
for(i=3; i*i<=n;i+=2)
if(!(n%i)) return false;
return true;
}
void main(void){
int n,m,i;
char a[11];
printf("Type m & n(integer,m<=n)...\n");
scanf("%d%d",&m,&n);
for(i = m&1 ? m : m+1;i<=n;i+=2){
strrev(itoa(i,a,10));
if(prime(i) && prime(atoi(a)))
printf("%d ",i);
}
printf("\n");
}
各类文案杂铺
2014-04-07 · TA获得超过196个赞
知道小有建树答主
回答量:75
采纳率:100%
帮助的人:35.8万
展开全部
#include <stdio.h>
void main ( )
{
int m,n,i,j,k;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++)
{
if(i==2) { //如果是2, 直接输出。
printf( "%d ", i);
continue;
}
for(j=2;j<i;j++) //应该是j<i
if(i%j==0) break; //这个break只能跳出最内层的for循环
if(j==i) printf("%d ",i); //printf应该放到循环外,并且只有当j==i的时候i才是素数

}
printf("\n");
}
更多追问追答
追问
这个只能求出素数,我要的是可逆素数,数序调过来依然是素数才是可逆素数
追答
希望对你有所帮助!!!
编写函数以下程序中,函数int f(int m,int n,int a[]),其功能是在[m,n]区间内查找所有可逆素数并将这些素数依次保存到a指向的数组中,函数返回a数组中可逆素数的数目。
#include
#include
int p(int n)
{ int i,j=sqrt(n);
for(i=2;i0)
{ m=m*10+n%10;
n=n/10;
}
return m;
}
int f(int m,int n,int a[])
{ int i,j=0;
for(i=m;i<=n;i++)
if(p(i)&&p(convert(i))) a[j++]=i;
return j;
}
main()
{ int i,n,a[50];
n=f(50,150,a);
for(i=0;i<n-1;i++)
printf("%d,",a[i]);
printf("%d",a[n-1]);
getch();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式