若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。


  • 运维

  • 前端

  • 编程

  • 随笔

  • hust-oj

2887: D–机器人Bill

发表于 2017-10-06   |   分类于 HUSTOJ   |   阅读次数 1,205

题目描述

最近,Dr. Jiang 新设计一个机器人Bill。Bill很聪明,会做许多事情。唯独对质数的理解与人类不一样,它是从右往左读数。比如,它看到113时,会理解成311。让它比较23与19哪一个大,它说19大。原因是它的大脑会以为是32与91在进行比较。再比如,让它比较29与31,它说29大。

给Bill 两个自然数A和B,让它将 [A,B] 区间中的所有质数按从小到大排序出来。你会认为它如何排序?

输入

第一行:N 表示有多少组测试数据。(2<=N<=5 )
接下来有 N 行,每一行有两个正整数 A,B 表示待排序元素的区间端点。(1<=A<=B<=200000, B-A<=100)

输出

对于每一行测试数据,输出一行,为所有排好序的元素,元素之间有一个空格。

样例输入

2
8 15
18 39

样例输出

11 13
31 23 37 19 29

参考代码

#include<stdio.h>
#include<math.h>
int bijiao(int c[],int n) 
{
    int i,s=0,j,t;
    for (i=0; i<n; i++,s=0) 
    {
        while(c[i]) 
        {
            s*=10;
            s+=c[i]%10;
            c[i]/=10;
        }
        c[i]=s;
    }
    for (i=0;i<n-1;i++) 
    {
        for (j=0;j<n-i-1;j++) 
        {
            if(c[j+1]<c[j]) 
            {
                t=c[j];
                c[j]=c[j+1];
                c[j+1]=t;
            }
        }
    }
    for (i=0; i<n; i++,s=0) 
    {
        while(c[i]) 
        {
            s*=10;
            s+=c[i]%10;
            c[i]/=10;
        }
        c[i]=s;
    }
    return 0;
}
int panduan(int n) 
{
    int i;
    if(n<=1)return 0;
    for (i=2; i*i<=n; i++)
            if(n%i==0)return 0;
    return 1;
}
int  main() 
{
    int n,a,b,i,c[99],j=0;
    scanf("%d",&n);
    while(n--) 
    {
        scanf("%d%d",&a,&b);
        for (i=a,j=0; i<=b; i++)if(panduan(i))c[j]=i,j++;
        bijiao(c,j);
        for (i=0; i<j; i++)printf(i!=j-1?"%d ":"%dn",c[i]);
    }
    return 0;
}

解析

暂无

hustoj

发表评论 取消回复

邮箱地址不会被公开。 必填项已用*标注

*
*


hoxis wechat
著作权归作者所有
站点更新说明
  • 文章目录
  • 站点概览
若是凉夜已成梦

若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。

1904 日志
6 分类
12 标签
RSS
weibo github twitter facebook

友情链接

Skip 原站点 Dreams孤独患者
© 2017 若是凉夜已成梦
Powered by WordPress | 已运行
Theme By NexT.Mist