题目链接:hdu6287

题意:给你n个数,和m个询问,每个询问有一个l和r和d,现在问你,从【l,r】区间的乘积是不是d的倍数。

思路:对于一个数k是不是d的倍数这类问题,我们可以对这两个数分解质因数,之后看看k的质因数和d的质因数之间的关系,如果满足对于d的每一个质因数个数,在k中都有出现过,且k的出现次数要大于等于d的出现次数,这个就是满足的。

代码:

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <queue>
#include <vector>
#include <cmath>
using namespace std;int main()
{ios::sync_with_stdio(false);int t;cin>>t;int n,m;while(t--){cin>>n>>m;int a[100010];for(int i=0; i<n; i++)cin>>a[i];vector<int>prime[100005];//将每个存在该质因数的对应下标存入质数数组内for(int i=0; i<n; i++){int k=sqrt(a[i]);for(int j=2; j<=k; j++)if(a[i]%j==0){while(a[i]%j==0)prime[j].push_back(i), a[i]/=j;}if(a[i]>1)prime[a[i]].push_back(i);}while(m--){int l,r,d;cin>>l>>r>>d;l--;r--;int flag=0;int k=sqrt((d));for(int i=2; i<=k; i++)if(d%i==0){int cnt=0;while(d%i==0)d/=i,cnt++;if(upper_bound(prime[i].begin(),prime[i].end(),r)-lower_bound(prime[i].begin(),prime[i].end(),l)<cnt){flag=1;break;}}if(d>1){int pos = upper_bound(prime[d].begin(), prime[d].end(),r) -lower_bound(prime[d].begin(), prime[d].end(),l);if(pos==0)flag=1;}if(flag)cout<<"No\n";elsecout<<"Yes\n";}}return 0;
}

hdu6287(分解质因数+二分)相关推荐

  1. C语言,分解质因数一个解法!_只愿与一人十指紧扣_新浪博客

    题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. 现在,你的程序要读入一个 ...

  2. 阶乘分解质因数[经典题组合数学枚举质因子]

    引入问题: 给定整数NNN,试把阶乘 N!N!N! 分解质因数,按照算术基本定理的形式输出分解结果中的 pip_ipi​ 和 cic_ici​即可. N!N!N!分解质因数后的结果,共若干行,每行一对 ...

  3. 【数学专题】 筛质数、分解质因数和快速幂

    筛质数 质数筛法分为埃氏筛和线性筛. 埃氏筛没有线性筛时间复杂度好,不常用,但是他的时间复杂度分析方法却比较常用. 埃氏筛的时间复杂度为O(nloglogn)≈O(n)O(nloglogn)≈O(n) ...

  4. 【c语言】分解质因数

    将一个正整数N(1<N<32768)分解质因数.例如,输入90,打印出90=233*5. 样例输入 66 样例输出 66=2311 #include <stdio.h> int ...

  5. java求最大公约数(分解质因数)

    下面是四种用java语言编程实现的求最大公约数的方法: package gcd;import java.util.ArrayList; import java.util.List;public cla ...

  6. 负数分解质因数java_Java经典案例之-“分解质因数”

    /** * 描述:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. * 分析: * 对n进行分解质因数,应该先找到一个最小的质数k,然后按照下列步骤进行: * (1)如果这个质数恰 ...

  7. python【蓝桥杯vip练习题库】ADV-359分解质因数

    试题 算法提高 分解质因数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个正整数n,尝试对其分解质因数 输入格式 仅一行,一个正整数,表示待分解的质因数 输出格式 仅一行, ...

  8. python【蓝桥杯vip练习题库】BASIC-16分解质因数(数论 质数分解)

    试题 基础练习 分解质因数 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 求出区间[a,b]中所有整数的质因数分解. 输入格式 输入两个整数a,b. 输出格式 每行输出一个数的分解 ...

  9. 求助matlab分解质因数,Matlab

    Since Apr.6th,2016 linspace:产生一系列整数.linspace(a, b, c)产生的数 x 范围为 a≤x≤b ,总数为 c . 注意和 a:b:c的区别,a:b:c中 c ...

  10. C语言经典例14-将一个正整数分解质因数

    目录 1 题目 2 分析 3 实现 4 运行结果 1 题目 将一个正整数分解质因数.例如:输入909090,打印出 90=2∗3∗3∗590 = 2 * 3 * 3 * 590=2∗3∗3∗5 2 分 ...

最新文章

  1. 聊城中考计算机试题及答案,初中微机模拟考试试题(word版).doc
  2. linux i2c 读写函数,Linux下读写芯片的I2C寄存器
  3. mysql安装sphinx引擎
  4. Java读取Excel文件并将之写入数据库操作
  5. 学生使用计算机中怎么关机,学会正确开关机初中计算机教案
  6. 泛型字典 0104 c#
  7. [洪流学堂]Hololens开发入门篇1之模拟器开发环境配置
  8. [python基础] 浮点数乘法的误差问题
  9. 赚钱有捷径吗?为什么有的人赚钱很容易
  10. python安装包的方法与图解_Python包的几种安装方法,方式
  11. MAC编译freetype
  12. BREDR之inquiry及page
  13. 在使用计算机时可以用什么键关机,计算机快捷键怎么用(按什么),关机、睡眠等?...
  14. 太突然!著名音乐人陈道明去世,死因曝光,刺痛全网……
  15. [Pyecharts]数据可视化 大屏展示
  16. Python聊天室设置与实现
  17. 开拓者终变落荒者,火箭大胜进第二轮
  18. labuladong算法小抄中图算法的学习笔记(c++版)
  19. BTC反弹上攻失效 回踩重点关11000
  20. 作为普通人,咱呐,活着就好!

热门文章

  1. rancher 启动命令_Rancher 快速上手指南操作(1)
  2. 矩阵减法c语言程序,矩阵的加减法
  3. 在vue中修改数组某个元素,值变了,渲染不了
  4. 谷粒商城-商城业务-商品详情
  5. 软件测试入门知识了解
  6. python 求偏导数 调用偏导数函数的输入
  7. [导入]WAP常见问题问答大全---七、关于WAP浏览器的常见问答
  8. C++:多态性与虚函数 | 虚函数的注意点 | 汇编角度来看动态联编过程
  9. 科技论文写作之时态问题
  10. Chrome插件(扩展)开发全攻略