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

2024-11-18 08:40:30
推荐回答(2个)
回答(1):

//#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");
}

回答(2):

#include
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 if(i%j==0) break; //这个break只能跳出最内层的for循环
if(j==i) printf("%d ",i); //printf应该放到循环外,并且只有当j==i的时候i才是素数

}
printf("\n");
}