第2-5节项目6(4)-回文、素数

问题及代码:

/*
Copyright(c)2018,CSDN学院行者-
All rights reserved.
文件名称:main.c
作者:乔帅
完成日期:2018年2月1日
版本号:v1.0


问题描述:回文、素数
输入描述:无输入
程序输出:输出1000以内的素数、回文数、回文素数、可逆素数
*/
#include<stdio.h>
#include<math.h>
int isPrimer(int);
int reverse(int);
int isPalindrome(int);
int main(){
    int i;
    printf("(1)输出1000以内的所有素数\n");
    for( i = 2 ; i < 1000 ; ++i){
        if(isPrimer(i))
            printf("%d\t" , i);
    }
    printf("\n\n");
    printf("(2)输出1000以内的所有回文数\n");
    for( i = 2 ; i < 1000 ; ++i){
        if(isPalindrome(i))
            printf("%d\t" , i);
    }
    printf("\n\n");
    printf("(3)输出1000以内的回文素数\n");
    for( i = 2 ; i < 1000 ; ++i){
        if(isPalindrome(i)&&isPrimer(i))
            printf("%d\t",i);
    }
    printf("\n\n");
    printf("(4)输出10000以内的可逆素数\n");
    for( i = 1 ; i < 10000 ; ++i){
        if(isPrimer(i)&&isPrimer(reverse(i)))
            printf("%d\t",i);
    }
    printf("\n");
    return 0;
}
int isPrimer(int n){    //求素数
    int i ,f = 1;
    int k = (int)(sqrt(n));        //求素数的简化步骤
    for(i = 2 ; i <= k ; i++){
        if(n % i == 0){
            f = 0;
            break;
        }
    }
    return f;
}
int reverse(int x){     //反序数
      int m = 0 ;
      while(x>0){
        m = m * 10 + x % 10 ;   //这里x%10可以得到数x的最后一位,m*10将得到的最后一位数进行提到前面,就可以得到前面要求的东西
        x = x / 10;     //每循环一次把最后一位去掉
      }
      return m ;
}
int isPalindrome(int n){    //求回文数
    int m = 0;
    m = reverse(n);     //调用函数对n变量没有影响
    if(m == n){
        return 1;
    }else{
        return 0;
    }
}

运行结果:

部分结果

知识点总结:

1.函数的应用

2.函数的调用

学习心得:

因为是初学小白,所以有需要改正的希望大家给我留言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值