数(aqnum)
数(aqnum)
3.1 题目描述
秋锅对数论很感兴趣,他特别喜欢一种数字。秋锅把这种数字命名为 农数 ,英文名为 AQ number 。
这种数字定义如下:
定义 1 一个数 n 是农数,当且仅当对于每个质数 p ,要么 p ∤ n ,要么 p ≤ MAXPRIME
且存在一个 正奇数 k 使得 p k | n 且 p k+1 ∤ n 。
秋锅想知道,给定 N,MAXPRIME ,问 1 到 N 里面的农数有多少个呢?
3.2 输入格式
一行 2 个数,
分别为 N 和 MAXPRIME 。
3.3 输出格式
一行一个数,表示 1 到 N 中农数的个数。
3.4 样例输入
10 3
3.5 样例输出
5
3.6数据范围
对于 30% 的数据:N ≤ 1000
对于 60% 的数据:N ≤ 5 × 10^6
对于 100% 的数据:N ≤ 10^10 ,MAXPRIME ≤ 10^6
题解:
搜索。怎么能想到它是搜索呐?
农数的因数满足小于等于maxprime,且指数为奇数,处理出小于等于maxprime的质数,枚举指数的情况,加一个剪枝,如果当前数*pri[i]^2>limit,停止搜索,二分一个最大的乘以当前数<=limi的质因子,答案加上这些质子,注意数据范围(最近总是忽略数据范围)。
写的时候,一直把upper_bound写成了lower_bound,傻傻分不清。
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
int pri[1000010];
long long sum=0,lim,ma,p;
bool o[1000010];
long long read()
{
long long ans=0,fu=1;char ch=getchar();
while(!isdigit(ch)) {if(ch=='-') fu=-1;ch=getchar();}
while(isdigit(ch)) {ans=ans*10+ch-'0';ch=getchar();}
return ans*fu;
}
void prime(int x)
{
p=0;
o[1]=1;
for(int i=2;i<=x;i++)
{
if(!o[i])
pri[++p]=i;
for(int j=1;j<=p&&pri[j]*i<=x;j++)
{
o[pri[j]*i]=1;
if(i%pri[j]==0)
break;
}
}
}
void search(long long x,int th) //x要开long long哦
{
if(th==p+1)
{
sum++;
return;
}
if(x*pri[th]>lim)
{
sum++;
return;
}
if(x*pri[th]*pri[th]>lim)
{
int pos=upper_bound(pri+1,pri+p+1,lim/x)-pri;
sum+=pos-th+1;
if(sum<0)
{
int debug=1;
}
return;
}
search(x,th+1);
for(int i=0;;i++)
{
if(x>lim)
return;
if(i&1)
search(x,th+1);
x*=pri[th];
}
}
int main()
{
freopen("aqnum.in","r",stdin);
freopen("aqnum.out","w",stdout);
lim=read(),ma=read();
prime(ma);
search((long long)1,1);
printf("%lld",sum);
return 0;
}
数(aqnum)的更多相关文章
- Linux上如何查看物理CPU个数,核数,线程数
首先,看看什么是超线程概念 超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的 ...
- 微信小程序中利用时间选择器和js无计算实现定时器(将字符串或秒数转换成倒计时)
转载注明出处 改成了一个单独的js文件,并修改代码增加了通用性,点击这里查看 今天写小程序,有一个需求就是用户选择时间,然后我这边就要开始倒计时. 因为小程序的限制,所以直接选用时间选择器作为选择定时 ...
- 数塔问题(DP算法)自底向上计算最大值
Input 输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数塔,其中第i行有个i个整数 ...
- 统计iOS项目的总代码行数的方法
打开终端, 用cd命令 定位到工程所在的目录,然后调用以下命名即可把每个源代码文件行数及总数统计出来: find . "(" -name "*.m" -or - ...
- 数百个 HTML5 例子学习 HT 图形组件 – 3D建模篇
http://www.hightopo.com/demo/pipeline/index.html <数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇>里提到 HT 很 ...
- 数百个 HTML5 例子学习 HT 图形组件 – 3D 建模篇
http://www.hightopo.com/demo/pipeline/index.html <数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇>里提到 HT 很 ...
- 数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇
<数百个 HTML5 例子学习 HT 图形组件 – 拓扑图篇>一文让读者了解了 HT的 2D 拓扑图组件使用,本文将对 HT 的 3D 功能做个综合性的介绍,以便初学者可快速上手使用 HT ...
- 数百个 HTML5 例子学习 HT 图形组件 – 拓扑图篇
HT 是啥:Everything you need to create cutting-edge 2D and 3D visualization. 这口号是当年心目中的产品方向,接着就朝这个方向慢慢打 ...
- android手机旋转屏幕时让GridView的列数与列宽度自适应
无意中打开了一年前做过的一个android应用的代码,看到里面实现的一个小功能点(如题),现写篇文章做个笔记.当时面临的问题是,在旋转屏幕的时候需要让gridview的列数与宽度能自适应屏幕宽度,每个 ...
随机推荐
- JS Ajax跨域访问
js ajax跨域访问报"No 'Access-Control-Allow-Origin' header is present on the requested resource 如果请求的 ...
- 洛谷P4145 上帝造题的七分钟2 / 花神游历各国(重题:洛谷SP2713 GSS4 - Can you answer these queries IV)
题目背景 XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. 题目描述 "第一分钟,X说,要有数列,于是便给定了一个正整数数列. 第二分钟,L说,要能修改,于是便有了对一段 ...
- 创建多个Django业务模块
manage.py startapp cmdb 如果运行错误记得加环境变量 c:\python35\python.exe manage.py startapp cmdb
- json原生解析
身为新手,在运用网络解析json数据的时候,发现先会用Gson等框架解析json,然后就懒起来学原生解析了,这下在看别人写的demo的时候就尴尬了,一块块的,不懂写什么,气氛十分尴尬. 不多说,先来条 ...
- C# 通过URL得到图片的问题
第一个方法在读取某些图片会报错 public static Image get_Fill_image(string url) { var image = new Image(); image.Sour ...
- pytest相关资源收集
pytest官网 https://docs.pytest.org/en/latest/getting-started.html 官网推荐的plugin https://docs.pytest.org/ ...
- 目录中的pwd、cd及ls命令
1.pwd命令(确定当前所在目录) pwd命令以绝对路径的方式显示用户当前工作目录.命令将当前目录的全路径名称(从根目录)写入标准输出.全部目录使用/分隔.第一个/表示根目录,最后一个目录是当前目录. ...
- cocos2dx3.0项目创建流程
cocos2dx3.0不是beta,新增了wp项目创建的支持 但不知道为啥非beta版本号的tools文件夹中取消了project-creator,可能有更改吧 没有这个工具还挺麻烦.就自己手动创建c ...
- Directx11教程(57) 环境映射
原文:Directx11教程(57) 环境映射 建好skydome后,如果我们想让其中的某个物体,比如那个球体来映射出周围环境的蓝天白云(不包括自己附近的物体),该怎么做呢?此时可以把这个 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十九章:法线贴图
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十九章:法线贴图 学习目标 理解为什么需要法线贴图: 学习法线贴图如 ...