C语言函数求绝对素数问题

来源:百度知道 编辑:UC知道 时间:2024/06/28 00:10:37
题目
一个素数个位十位调换后仍为素数则为绝对素数,求所有两位绝对素数
要求
用 int isPrime(int n)判断是否是素数
void absPrimeTens()输出所有绝对素数
主函数用absPrimeTens()

我编的
#include<stdio.h>
#include<math.h>
int isPrime(int n)
{
int i,k;
k=sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0)
break;
if(i>k)
return(n);
}
void absPrimeTens()
{
int x,y,i,j;
for(i=10;i<=100;i++)
{
x=isPrime(i);
j=10*(x%10)+x/10;
y=isPrime(j);
if(y>=10 && y<=100)
printf("%d ",x);
}

printf("\n");
}
void main()
{
absPrimeTens();
}

求解为何输出错误谢谢!
帮忙修改下 追加!

#include<stdio.h>
#include<math.h>
int isPrime(int n)
{
int i,k;
k=(int)sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0)
return 0;//如果有一个可以出尽,直接返回0,表示不为素数
return n;//能到这一步说明是素数,直接返回改值
}
void absPrimeTens()
{
int x,y,i,j;
for(i=10;i<100;i++)//两位数不包含100,改为i<100
{
x=isPrime(i);
if(x)//表示x不为零,即是素数
{
j=10*(x%10)+x/10;
y=isPrime(j);
if(y>=10 && y<100)//两位数不包含100,改为i<100
printf("%d ",x);
}
}

printf("\n");
}
void main()
{
absPrimeTens();
}

#include<stdio.h>
#include<math.h>
int isPrime(int n)
{
int i,k;
k=(int)sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0)
break;
if(i<k)
n=0;
return n;
}/*这个函数,如果 n 不是素数则不返回值,但int 型函数,必须返回一个值,所以错误!*/
void absPrimeTens()