qq_36519547 2016-11-24 00:43 采纳率: 100%
浏览 950

C语言问题求解答!!!!

绝对素数是指本身是素数,其逆序数也是素数的数。例如:10321与12301是绝对素数。

编程实现:键盘输入一个整数n,输出小于n的所有绝对素数。

要求:编写函数int isprime(int x)实现测试参数x是否为素数;编写函数int convert(int x),返回参数x的逆序数。main中完成输入输出与函数调用。

编写十进制数到二进制、八进制、十六进制间的转换程序。要求:键盘输入一个十进制的数,输出其对应的二进制、八进制、十六进制数。小数部分可以只输出8位以内

  • 写回答

2条回答 默认 最新

  • shen_wei 2016-11-24 08:36
    关注
     #include<stdio.h>
    #include <math.h>
    
    #define SWAP(a, b, t) t = (a), (a) = (b), (b) = (t);  // 交换两个数的位置
    
    int foo1(int m);          // 计算素数  , 是返回1, 否返回0
    int foo2(int m);          // 计算反序数, 是返回1, 否返回0
    
    int main()
     {
         int m, n, x;
         int t;
    
         scanf("%d%d", &m, &n);
         if (m > n)             // 如果第一个数大于第二个数,就交换位置 没有做<1000的判断, 需要可以加上去.
            SWAP (m, n, t);
    
         for (x = m; x <= n; x++)
             if (foo1(x))       // 1. 计算x是否是素数
                if (foo2(x))   // 2. 计算反序数是否是素数
                printf("%d\n", x);
         return 0;
     }
    
    int foo1(int m)
     {
         int i;
         for (i = 2; i <= sqrt(m); i++)
             if (m % i == 0)
                 return 0;
         return 1;
     }
    
    int foo2(int m)
     {
         int x = 0, t = 0;
    
         while(m) {         // 求反序数
            x = m % 10;
             t = t * 10 + x;
             m = m / 10;
         }
         if (foo1(t))      // 计算反序数是否是素数.
            return 1;
         return 0;
     }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 luckysheet
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误