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 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器