鱼C论坛

 找回密码
 立即注册
查看: 3004|回复: 1

[已解决]C语言求某个范围内逆序前后都是素数

[复制链接]
发表于 2022-11-27 15:57:11 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
设计一个程序,输入一个范围,输出范围内本身是素数 反序后还是素数的所有素数。
大佬们,这个该怎么弄呀,为什么我这样子弄不行呀。

#include<stdio.h>
int isprime(unsigned begin,unsigned end);
unsigned revers(unsigned begin,unsigned end);
int main() {
        int a = 0, b = 0;
        printf("请输入一个范围:");
        scanf_s("%d%d", &a, &b);
        isprime(a, b);
        return 0;
}
int isprime(unsigned begin,unsigned end) {
        int revers(unsigned begin, unsigned end);
        int i = 0;
        for (begin; begin <= end; begin++) {
                for (i = 2; i < begin; i++) {
                        if (begin % i == 0) {
                                return 0;
                        }
                }
        }
        revers(begin, end);
}
unsigned revers(unsigned begin,unsigned end) {
        int t = 0, num = 0,i=0,start=begin,x=1;
        while (start > 0) {
                t = start % 10;
                start = start / 10;
                num = num * 10 + t;
        }
        for (i = 2; i < num; i++) {
                if (num % i == 0) {
                        x = 0;
                        break;
                }
        }
        if (x == 1){
                printf("%d ",begin);
                return begin;
        }
        return 0;
}
最佳答案
2022-11-27 16:16:26
本帖最后由 jackz007 于 2022-11-27 16:23 编辑
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         int a , b , c , i , j , k , n                                        ;
  5.         scanf("%d%d" , & a , & b)                                            ;
  6.         for(i = a ; i <= b ; i ++) {
  7.                 for(j = 2 ; j <= i / j ; j ++) if(! (i % j)) break           ;
  8.                 if(j > i / j) {
  9.                         for(n = i , k = 0 ; n ; n /= 10) k = k * 10 + n % 10 ;
  10.                         for(c = 2 ; c <= k / c ; c ++) if(! (k % c)) break   ;
  11.                         if(c > k / c && i < k) printf("%d %d\n" , i , k)     ;
  12.                 }
  13.         }
  14. }
复制代码

        编译、运行实况:
  1. D:\[00.Exerciese.2022]\C>g++ -o x x.c

  2. D:\[00.Exerciese.2022]\C>x
  3. 2 200
  4. 13 31
  5. 17 71
  6. 37 73
  7. 79 97
  8. 107 701
  9. 113 311
  10. 149 941
  11. 157 751
  12. 167 761
  13. 179 971
  14. 199 991

  15. D:\[00.Exerciese.2022]\C>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-11-27 16:16:26 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2022-11-27 16:23 编辑
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         int a , b , c , i , j , k , n                                        ;
  5.         scanf("%d%d" , & a , & b)                                            ;
  6.         for(i = a ; i <= b ; i ++) {
  7.                 for(j = 2 ; j <= i / j ; j ++) if(! (i % j)) break           ;
  8.                 if(j > i / j) {
  9.                         for(n = i , k = 0 ; n ; n /= 10) k = k * 10 + n % 10 ;
  10.                         for(c = 2 ; c <= k / c ; c ++) if(! (k % c)) break   ;
  11.                         if(c > k / c && i < k) printf("%d %d\n" , i , k)     ;
  12.                 }
  13.         }
  14. }
复制代码

        编译、运行实况:
  1. D:\[00.Exerciese.2022]\C>g++ -o x x.c

  2. D:\[00.Exerciese.2022]\C>x
  3. 2 200
  4. 13 31
  5. 17 71
  6. 37 73
  7. 79 97
  8. 107 701
  9. 113 311
  10. 149 941
  11. 157 751
  12. 167 761
  13. 179 971
  14. 199 991

  15. D:\[00.Exerciese.2022]\C>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-22 22:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表