Description
如果一个正整数的所有质因子都小于等于m且每种质因子个数都为奇数,则称这个数为幸运数,例如当m=3时,6是幸运数而5不是,12也不是幸运数(2这个质因子有偶数个)。

给定n,m,求小于等于n的幸运数有多少个。

Input
一行2个数,表示n,m。

Output
一行1个数,表示幸运数的个数。

Sample Input
10 3

Sample Output
5

Data Constraint
对于20%的数据,n<=104,m<=104;

对于40%的数据,n<=107,m<=106;

对于80%的数据,n<=108,m<=106;

对于100%的数据,n<=109,m<=106。

思路

首先,分解质因数,然后dfs枚举因子个数。结果TLE20

所以考虑优化。

我们发现,当x*a[i]^2>m那么可以二分找出那些质数合法

代码

#include<iostream>
#include<cstdio>
#define sqr(x) (x*x)
#define ll long long
using namespace std;
int n,m,g[1000010],f[1000010],cnt,ans;
void ef(int x,int t)
{int l=x,r=cnt,mid,p=-1;while (l<=r){mid=(l+r)>>1;if (t*(ll)g[mid]<=n) p=mid,l=mid+1; else r=mid-1; }if (p!=-1) ans+=p-x+1;ans++;
}
void dfs(int x,int t)
{if (x>cnt){ ans++; return; }if (t*(ll)g[x]*g[x]>n) { ef(x,t); return; }dfs(x+1,t);ll k=g[x];for (int i=1;i<=50;i++){if (t*k<=n) dfs(x+1,t*k); else break;k*=sqr(g[x]);}
}
int main()
{scanf("%d%d",&n,&m),m=min(n,m);for (int i=2;i<=m;i++){if (!f[i]) g[++cnt]=i;for (int j=1;j<=cnt&&(ll)i*g[j]<=m;j++) {f[i*g[j]]=1;if (i%g[j]==0) break;}}dfs(1,1);printf("%d",ans);
}

【JZOJ B组】幸运数相关推荐

  1. 2018年第九届省赛C/C++A组第4题——第几个幸运数

    标题:第几个幸运数 到x星球旅行的游客都被发给一个整数,作为游客编号. x星的国王有个怪癖,他只喜欢数字3,5和7. 国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品. 我们来看前1 ...

  2. 【每日蓝桥】16、一三年省赛Java组真题“幸运数”

    你好呀,我是灰小猿,一个超会写bug的程序猿! 欢迎大家关注我的专栏"每日蓝桥",该专栏的主要作用是和大家分享近几年蓝桥杯省赛及决赛等真题,解析其中存在的算法思想.数据结构等内容, ...

  3. 京东2017校招:4,7幸运数

    京东2017年校招编程题第一题,实现语言:java 算法思想,将4,7看成0,1,转换成2进制,令最高为标志位1,则从2开始,举例说明: 2(10) -> 4 3(11) ->7 4(10 ...

  4. java求幸运数字_Java 第几个幸运数

    Java 蓝桥杯第九届省赛C组第四题 到x星球旅行的游客都被发给一个整数,作为游客编号. x星的国王有个怪癖,他只喜欢数字3,5和7. 国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖 ...

  5. LeetCode简单题之矩阵中的幸运数

    题目 给你一个 m * n 的矩阵,矩阵中的数字 各不相同 .请你按 任意 顺序返回矩阵中的所有幸运数. 幸运数是指矩阵中满足同时下列两个条件的元素: 在同一行的所有元素中最小 在同一列的所有元素中最 ...

  6. Java 寻找幸运数

    题目描述 定义一个方法static int ndigit(int n,int k),用来判断某个整数n中数字k(0~9)的个数. 编写主方法,其中输入一个整数m,后面跟m个整数,然后调用方法ndigi ...

  7. 试题 历届试题 幸运数(二分)

    试题 历届试题 幸运数 资源限制 时间限制:1.0s 内存限制:256.0MB 题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成 . 首先从1开始写出自然 ...

  8. 51Nod1230 幸运数

    1230 幸运数 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 320 难度:7级算法题 如果一个数各个数位上的数字之和是质数,并且各个数位上的数字的平 ...

  9. 蓝桥杯之第几个幸运数

    第几个幸运数 到x星球旅行的游客都被发给一个整数,作为游客编号. x星的国王有个怪癖,他只喜欢数字3,5和7. 国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品. 我们来看前10个幸 ...

最新文章

  1. 全球及中国4-氨基间甲酚行业应用需求与发展策略分析报告2022版
  2. Java 序列化的一些简 单总结
  3. verilog秒表计时器
  4. 男孩子什么品质最吸引女生?
  5. 没事研究下C#虚拟光驱,有所收获!
  6. C语言学习笔记---C库排序函数qsort()
  7. 翁恺老师C语言学习笔记(七)函数
  8. window7安装sqlserver2000企业版
  9. Sql Server 2005各大版本区别与下载
  10. swift VFL - 父视图是scrollview 注意点
  11. vpp flowprobe
  12. 软件工程基础 实验3《系统设计》
  13. Activity工作流
  14. 辉光管时钟系列<三>时钟芯片DS12C887
  15. 为什么今年高考数学又出编程题?
  16. Java 处理英文文本标点符号去除
  17. 京东商品详情数据接口(APP端,H5端),监控京东商品历史价格及价格走势,接口代码对接教程
  18. java手机版头文字d_头文字D THE ARCADE
  19. GO WEB IRIS入门 安装iris
  20. 热门计算机游戏排名,十大pc游戏排行榜 英雄联盟位居第一,第三游戏体验感很强...

热门文章

  1. GB2312、GBK、GB18030 这几种字符集的主要区别是什么?
  2. 语音增强--维纳滤波介绍及MATLAB实现
  3. 阿里云——OpenAPI使用——短信服务
  4. 计算机实时控制和过程控制,实时控制程序
  5. 环德无人便利店面向全国代理加盟连锁便利店
  6. mysql month函数值类型_MySQL常用函数(分类别整理)
  7. 分布式 ID 解决方案帮你总结好啦!收藏拿去面试去。
  8. 风向标瑞福进取昨发疯,真的转势了
  9. 排产易!APS系统如何选型?(上)
  10. 测试画面帧率及帧延时一种方法