互逆素数

来源:互联网 发布:sql查看创建表语句 编辑:程序博客网 时间:2024/05/29 01:54

/*编写一个判断素数的函数,如果该数字是素数,则函数返回1;否则函数返回0。要求调用该判断素数函数,求出xy之间(xy均为正整数,包含xy,且x<y)所有的可逆素数。所谓可逆素数是指:若将某一素数的各位数字顺序颠倒后得到的数仍然是素数,则此素数称为可逆素数。例如:149是可逆素数(因为149是素数,941也是素数)。*/

#include <stdio.h>#include <string.h>#include <stdlib.h>#define SZ 10000int prime[SZ];void init()//素数筛{    int i, j;    for (i = 0; i < SZ; i++)    {        prime[i] = 1;    }    prime[0] = prime[1] = 0;    for (i = 2; i < SZ; i++)    {        if (prime[i])        {            for (j = i + i; j < SZ; j += i)                prime[j] = 0;        }    }}int change(char *a);char a[100];char b[100];int main(){    init();    int n, m, i;    int ano;    scanf("%d%d", &n, &m);    for (i = n; i <= m; i++)    {        if (prime[i] == 1)        {            sprintf(a, "%d", i);//将int转换为字符串            ano = change(a);            if (prime[ano]==1)                printf("%d ", i);        }    }    return 0;}int change(char *a){    int i;    int j = 0;    for (i = strlen(a) - 1; i >= 0; i--)        b[j++] = a[i];//倒序存入    b[j] = '\0';    return atoi(b);//将字符转换为int}


0 0
原创粉丝点击