COJN 0486 800401反质数 呵呵呵呵呵
| 800401反质数 |
| 难度级别:A; 运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B |
|
试题描述
|
|
将正整数 x 的约数个数表示为 g(x)。例如,g(1)=1,g(4)=3, g(6)=4。 如果对于任意正整数y,当 0 < y < x 时,x 都满足 g(x) > g(y), 则称 x 为反质数。整数 1,2,4,6 等都是反质数。 现在任意给定两个正整数 M, N,其中,M < N <= 20000000,按从小到大输出其中(包括 M 和 N)的所有反质数。如果没有,则输出大写的NO。 |
|
输入
|
|
一行,包含两个正整数M和N,用单个空格隔开。
|
|
输出
|
|
在一行内输出所有反质数,以逗号间隔。如果没有,则输出 NO。
|
|
输入示例
|
|
1 13
|
|
输出示例
|
|
1,2,4,6,12
|
|
其他说明
|
|
|
题解:我非常想分享一下这道题的艰辛历程= =
首先:这还不好办?分块打表!结果发现它不是问数量。。。= =
那也可以呀?我们不分块直接打表不好嘛?
于是就有了下图,发现根本交不上去。。。= =

那那那。。。窝萌就把所有的反质数都打出来呗。。。。
结果。。。。。。。。。。。。。。。。。。。。。。

呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵
呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵
呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵
呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵,呵
这个惨痛的教训告诉窝萌:打表,是一项技术活。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
附打表程序:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<queue>
#include<cstring>
#define PAU putchar(' ')
#define ENT putchar('\n')
using namespace std;
const int maxn=+,maxv=;
int a[maxn];bool b[maxn];
int cal(int x){
if(x==)return ;
int lim=(int)sqrt(x),ans=;
for(int i=;i<=lim;i++)if(x%i==)ans+=;
if(lim*lim==x)ans-=;return ans;
}
inline int read(){
int x=,sig=;char ch=getchar();
for(;!isdigit(ch);ch=getchar())if(ch=='-')sig=;
for(;isdigit(ch);ch=getchar())x=*x+ch-'';
return sig?x:-x;
}
inline void write(int x){
if(x==){putchar('');return;}if(x<)putchar('-'),x=-x;
int len=,buf[];while(x)buf[len++]=x%,x/=;
for(int i=len-;i>=;i--)putchar(buf[i]+'');return;
}
void init(){
freopen("b.txt","w",stdout);
for(int i=;i<=maxv;i++)a[i]=cal(i);int mx=;b[]=true;
for(int i=;i<=maxv;i++)if(mx<a[i])mx=a[i],b[i]=true;
int cnt=;
for(int i=;i<=maxv;i++){
if(b[i])a[cnt++]=i;
}
int tot=;
for(int i=;i<cnt;i++){
if(++tot==)tot=,ENT;
printf("p[%d]=%d;",i,a[i]);
}
return;
}
void work(){
return;
}
void print(){
return;
}
int main(){init();work();print();return ;}
AC代码。。。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<queue>
#include<cstring>
#define PAU putchar(' ')
#define ENT putchar('\n')
using namespace std;
const int maxn=+;int p[maxn];
inline int read(){
int x=,sig=;char ch=getchar();
for(;!isdigit(ch);ch=getchar())if(ch=='-')sig=;
for(;isdigit(ch);ch=getchar())x=*x+ch-'';
return sig?x:-x;
}
inline void write(int x){
if(x==){putchar('');return;}if(x<)putchar('-'),x=-x;
int len=,buf[];while(x)buf[len++]=x%,x/=;
for(int i=len-;i>=;i--)putchar(buf[i]+'');return;
}
void init(){
p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;
p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;
p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;
p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;
p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;p[]=;
p[]=;
return;
}
void work(){
int n=read(),m=read();bool flag=false;
for(int i=;i<;i++){
if(n<=p[i]&&p[i]<=m){
if(flag)putchar(',');
else flag=true;
write(p[i]);
}
}
if(!flag)puts("NO");
return;
}
void print(){
return;
}
int main(){init();work();print();return ;}
COJN 0486 800401反质数 呵呵呵呵呵的更多相关文章
- CNUOJ 0486 800401反质数
难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 将正整数 x 的约数个数表示为 g(x).例如,g(1)=1,g(4)=3, g ...
- 反质数问题,求不大于n的最大反质数
反质数:设f(n)表示n个约数的个数,如果对于任意x有0<x<n, f(x) < f(n),那么n就是一个反质数 我们都知道对于任意一个数n,都可以用质数乘积的形式表示出来:x = ...
- 反质数(Antiprimes)
转载http://www.cnblogs.com/tiankonguse/archive/2012/07/29/2613877.html 问题描述: 对于任何正整数x,起约数的个数记做g(x).例如g ...
- HYSBZ 1053 反质数
input n 1<=n<=2000000000 output 不大于n的最大反质数 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4.如果某个正整数x满足:g( ...
- bzoj:3085: 反质数加强版SAPGAP
Description 先解释一下SAPGAP=Super AntiPrime, Greatest AntiPrime(真不是网络流),于是你就应该知道本题是一个关于反质数(Antiprime)的问题 ...
- BZOJ1053 [HAOI2007]反素数 & BZOJ3085 反质数加强版SAPGAP
BZOJ 1053 Description 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4.如果某个正整数x满足:g(x)>g(i) 0<i<x ,则称x ...
- BZOJ 3085: 反质数加强版SAPGAP (反素数搜索)
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3085 题意:求n(<=10^100)之内最大的反素数. 思路: 优化2: i ...
- Emrips 反质数枚举 javascript实现
今天看到一个kata,提出一个"emirps"的概念:一个质数倒转后得到的是一个不同的质数,这个数叫做"emirps". 例如:13,17是质数,31,71也是 ...
- [BZOJ4857][JSOI2016]反质数序列[最大点独立集]
题意 在长度为 \(n\) 的序列 \(a\) 中选择尽量长的子序列,使得选出子序列中任意两个数的和不为质数. \(n\leq3000\ ,a_i\leq10^5\). 分析 直接按照奇偶性建立二分图 ...
随机推荐
- rsync是类unix系统下的数据镜像备份工具
http://baike.baidu.com/view/1183189.htm Ubuntu安装: sudo apt-get install rsync RedHat: yum install r ...
- Java POI 导出excel表
1.首先下载poi-3.6-20091214.jar,下载地址如下: http://download.csdn.net/detail/evangel_z/3895051 2.Student.java ...
- 设置sqlplus的autotrace
1.cd D:\Oracle11gR2\product\11.2.0\dbhome_1\rdbms\admin; --[ORACLE_HOME]/rdbms/admin 2.sqlplus syste ...
- 加入强调语气,使用<strong>和<em>标签
有了段落又有了标题,现在如果想在一段话中特别强调某几个文字,这时候就可以用到<em>或<strong>标签. 但两者在强调的语气上有区别:<em> 表示强调,< ...
- Ubuntu下管理员界面的切换
不同于redhat的Linux系统可以通过命令su root 简单地切换到管理员状态,ubuntn 默认是没有超级用户的,因此如需使用管理员权限可以使用以下2种方法: 1.sudo -i 此命令不需要 ...
- C# 深入浅出 委托与事件
C#中的委托和事件的概念接触很久了,但是一直以来总没有特别透彻的感觉,现在我在这里总结一下: 首先我们要知道委托的由来,为什么要使用委托了? 我们先看一个例子: 假设我们有这样一个需求,需要计算在不同 ...
- js单条新闻向上滚动
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- 《C# 并发编程 · 经典实例》读书笔记
前言 最近在看<C# 并发编程 · 经典实例>这本书,这不是一本理论书,反而这是一本主要讲述怎么样更好的使用好目前 C#.NET 为我们提供的这些 API 的一本书,书中绝大部分是一些实例 ...
- Log4Net使用指南(转)
转自:http://www.cnblogs.com/dragon/archive/2005/03/24/124254.html 声明:本文内容主要译自Nauman Leghari的Using log4 ...
- 正确设置网站title、keywords、description(转载)
本文转载自蚂蚁HR(www.mayihr.com) 优化技巧是老师在课堂上教不了你的,而自己也不可能在练习中领悟,最便捷的方法就是听取别人的经验,所以转载一下 1.title(网站标题) title, ...