提高篇项目8——素数、回文数、回文素数

任务及代码

#include <stdio.h>
#include <stdlib.h>
/*
*Copyright (c)2016,csdn学院
*All rights reserved.
*文件名称:lzz.c
*作    者:兰泽泽
*完成日期:2016年5月10日
*版 本 号:v1.0
*问题描述:编制main函数,调用上面定义的3个函数,完成
            输出1000以内的所有素数。
            输出1000以内的所有回文数。
            输出1000以内的所有回文素数。
            若一个素数的反序数仍为素数,则称它为可逆素数。求10000以内的所有可逆素数。
*程序输入:
*程序输出:
*/
int reverse(int);//求逆序数
int isPalindrome(int);//判断是否为回文数
int isPrimer(int);//判断是否为素数
int main()
{
    int i;
    printf("1000以内的所有素数:\n");
    for(i=0;i<1000;i++)
    {
        if(isPalindrome(i))
        printf("%d\t",i);
    }
    printf("\n\n");
    printf("1000以内所有逆序数:\n");
    for(i=0;i<1000;i++)
    {
        if(isPrimer(i))
            printf("%d\t",i);
    }
    printf("\n\n");
    printf("10000以内所有可逆素数:\n");
    for(i=0;i<10000;i++)
    {
        if(isPalindrome(i)&&isPrimer(i))
            printf("%d\t",i);
    }
    return 0;
}
int reverse(int x)
{
    int m=0;
    while(x>0)
    {
        m=m*10+x%10;
        x=x/10;
    }
    return m;
}
int isPalindrome(int n)
{
     int v,i;
     v=reverse(n);
     if(v==n)
        i=1;
     else
        i=0;
     return i;
}
int isPrimer(int n)
{
    int i,y;
    for(i=2;i<n;i++)
    {
        if(n%i==0)
        {
            y=0;
            break;
        }
        else
            y=1;
    }
    return y;
}

运行结果



你可能感兴趣的:(提高篇项目8——素数、回文数、回文素数)