CF230B T-primes 题解
简要题意:
判断一个数是否只有 \(3\) 个因数。
首先,如果一个数有奇数个因数,那么这个数是完全平方数。
道理很简单:因数是成对的,那么必然存在 \(k^2 = n\),此时 \(k\) 就是单个的,\(n\) 就是完全平方数。
但是,你会发现,并不是所有的完全平方数都一定有三个因数。
比方说: \(36\).
\(1 \space 2 \space 3 \space 4 \space6 \space 9 \space 12 \space 18 \space 36\)
一看这么多因数就不是3个
显然,我们发现:
若 \(n = k ^ 2\),用 \(f_n\) 表示 \(n\) 的因数个数,则:
\]
原因也很简单:因数是成对出现的,减去重复的 \(k\) 一个。
那么,此时;
\]
\]
也就是 \(f_k\) 是质数!
我们发现, \(n \leq 10^{12}\),则 \(k \leq \sqrt{n} \leq 10^6\).
显然,我们可以欧拉筛出 \(\leq 10^6\) 的质数表,然后 \(O(1)\) 判断。
综上:
\(n\) 不是完全平方数,或者 \(\sqrt{n}\) 不是质数时,答案为 \(\texttt{NO}\).
否则答案为 \(\texttt{YES}\).
#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+1;
inline ll read(){char ch=getchar();int f=1;while(ch<'0' || ch>'9') {if(ch=='-') f=-f; ch=getchar();}
ll x=0;while(ch>='0' && ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar();return x*f;}
bool h[N];
int prime[N],f=0;
inline void Euler() {
h[1]=1;
for(int i=2;i<N;i++) {
if(!h[i]) prime[++f]=i;
for(int j=1;j<=f && i*prime[j]<N;j++) {
h[i*prime[j]]=1;
if(i%prime[j]==0) break;
}
}
} //欧拉筛模板
int main(){
int T=read(); Euler(); while(T--) {
ll n=read();
if(n==1) puts("NO");
else {
ll q=sqrt(n);
if(q*q-n || h[q]) puts("NO");
else puts("YES");
}
}
return 0;
}
洛谷上竟然标蓝题,我谔谔
CF230B T-primes 题解的更多相关文章
- Primitive Primes - 题解【数学】
题面 It is Professor R's last class of his teaching career. Every time Professor R taught a class, he ...
- 算法与数据结构基础 - 哈希表(Hash Table)
Hash Table基础 哈希表(Hash Table)是常用的数据结构,其运用哈希函数(hash function)实现映射,内部使用开放定址.拉链法等方式解决哈希冲突,使得读写时间复杂度平均为O( ...
- PAT甲题题解-1015. Reversible Primes (20)-素数
先判断n是否为素数然后把n转化成d进制下再反转,转化为十进制的num判断num是否为素数 注意n为0和1时,不是素数!!!注意反转后的num也有可能为1,不是素数!!! #include <io ...
- Lucas的数论题解
Lucas的数论 reference 题目在这里> < Pre 数论分块 默认向下取整时. 形如\(\sum\limits_{i=1}^n f\left( \frac{n}{i}\righ ...
- Codeforces Round #315 (Div. 1) A. Primes or Palindromes? 暴力
A. Primes or Palindromes?Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://poj.org/problem?id=3261 ...
- 华南师大 2017 年 ACM 程序设计竞赛新生初赛题解
题解 被你们虐了千百遍的题目和 OJ 也很累的,也想要休息,所以你们别想了,行行好放过它们,我们来看题解吧... A. 诡异的计数法 Description cgy 太喜欢质数了以至于他计数也需要用质 ...
- PAT 甲级真题题解(1-62)
准备每天刷两题PAT真题.(一句话题解) 1001 A+B Format 模拟输出,注意格式 #include <cstdio> #include <cstring> #in ...
- PAT甲级题解(慢慢刷中)
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6102219.html特别不喜欢那些随便转载别人的原创文章又不给 ...
- HDU 5901 Count primes 论文题
Count primes 题目连接: http://acm.split.hdu.edu.cn/showproblem.php?pid=5901 Description Easy question! C ...
随机推荐
- javascript中this的四种用法
javascript中this的四种用法 投稿:hebedich 字体:[增加 减小] 类型:转载 时间:2015-05-11我要评论 在javascript当中每一个function都是一个对象,所 ...
- ypoj 2286 佳佳买菜
题目名称:佳佳买菜 描述 佳佳是我们的ACM社团的副社长,她感觉得自己没存在感,so-由于实验室要聚餐了,佳佳决定买点菜,来做菜给大家吃.佳佳喜欢吃娃娃菜,于是她来到买菜的地方.佳佳:我要10斤娃娃菜 ...
- AAAI |如何保证人工智能系统的准确性?
|如何保证人工智能系统的准确性?" title="AAAI |如何保证人工智能系统的准确性?"> 注:本文译自AI is getting smarter; ...
- HTML5全屏背景视频与 CSS 和 JS(插件或库)
译文原链接:http://codetheory.in/html5-fullscreen-background-video/ 前言: 当网页载入时,自动播放的全屏背景视频已经成为当前颇受欢迎的趋势. 就 ...
- Dizcuz站点部署-包教会
Dizcuz站点部署-包教会-有需要请联系小编! 小编微信号:wvqusrtg
- 记录一下自己写PHP程序时走过的一些坑
写在前面: 喔噢,转眼间发现自己正式开发程序(PHP)已经有快有1个月了,一路上走了许多的坑,有时遇到坑的时候真想放弃,但是还是坚持下来了!所以写了这篇文章来帮助那些刚刚接触PHP的小白们.[: )] ...
- idea通过maven打jar包不成功或无法加载主类或打成功也找不到jar包
这个问题纠结了我一天,在网上也搜了一些方法,现在把我自己的处理过程记录一下,以方便遇到此类问题的小伙伴参考: 第一步:查看idea的jdk版本与Windows安装的jdk是不是同一个版本,如下图 第二 ...
- 组件(4):使用slot进行内容分发
组件的作用域(一) 父组件模板的内容在父组件作用域内编译:子组件模板的内容在子组件作用域内编译. 父子组件的编译相互独立,编译时只能使用各自作用域中的属性和方法,例如,你不可以在父组件模板内,将一个指 ...
- PostCSS的插件 -- 关于vue rem适配布局方案
PostCSS的插件 作用:用于自动将像素单元生成rem单位 记以下三种 postcss-plugin-px2rem postcss-pxtorem postcss-px2rem 任选一种,最近大家推 ...
- 小程序Echarts 构建中国地图并锚定区域点击事件
小程序Echarts 构建中国地图并锚定区域点击事件 Step1 效果展示 使用的绘图框架为 Echarts for Wexin 具体API文档地址请点击 ----> Step2 条件准备 1. ...