原题链接

简要题意:

判断一个数是否只有 \(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\) 的因数个数,则:

\[f_n = 2 \times f_k-1
\]

原因也很简单:因数是成对出现的,减去重复的 \(k\) 一个。

那么,此时;

\[2 \times f_k - 1 = 3
\]

\[f_k = 2
\]

也就是 \(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 题解的更多相关文章

  1. Primitive Primes - 题解【数学】

    题面 It is Professor R's last class of his teaching career. Every time Professor R taught a class, he ...

  2. 算法与数据结构基础 - 哈希表(Hash Table)

    Hash Table基础 哈希表(Hash Table)是常用的数据结构,其运用哈希函数(hash function)实现映射,内部使用开放定址.拉链法等方式解决哈希冲突,使得读写时间复杂度平均为O( ...

  3. PAT甲题题解-1015. Reversible Primes (20)-素数

    先判断n是否为素数然后把n转化成d进制下再反转,转化为十进制的num判断num是否为素数 注意n为0和1时,不是素数!!!注意反转后的num也有可能为1,不是素数!!! #include <io ...

  4. Lucas的数论题解

    Lucas的数论 reference 题目在这里> < Pre 数论分块 默认向下取整时. 形如\(\sum\limits_{i=1}^n f\left( \frac{n}{i}\righ ...

  5. 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 ...

  6. 华南师大 2017 年 ACM 程序设计竞赛新生初赛题解

    题解 被你们虐了千百遍的题目和 OJ 也很累的,也想要休息,所以你们别想了,行行好放过它们,我们来看题解吧... A. 诡异的计数法 Description cgy 太喜欢质数了以至于他计数也需要用质 ...

  7. PAT 甲级真题题解(1-62)

    准备每天刷两题PAT真题.(一句话题解) 1001 A+B Format  模拟输出,注意格式 #include <cstdio> #include <cstring> #in ...

  8. PAT甲级题解(慢慢刷中)

    博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6102219.html特别不喜欢那些随便转载别人的原创文章又不给 ...

  9. HDU 5901 Count primes 论文题

    Count primes 题目连接: http://acm.split.hdu.edu.cn/showproblem.php?pid=5901 Description Easy question! C ...

随机推荐

  1. windows应用程序单实例

    前言 这才第几天博客就跟不上了,看来一天一篇博客的目标还是有点大,写博客还是挺费时间的,写了不满意删,删完再写...直到自己没了耐心.今天先写个前言,实质性的内容明天再补吧.今天一天的收获还是挺多的, ...

  2. Coding and Paper Letter(十五)

    资源整理. 1.Nature Climate Change论文"Higher temperatures increase suicide rates in the United States ...

  3. 通过IE私有滤镜让IE6 7 8支持背景透明,内容不透明效果。

    CSS3已经支持背景rgba的rgba透明度,这一方法可以避免元素内容也随背景一起变透明(详情请阅http://www.cssha.com/css3-new-knowledge-student).但是 ...

  4. Tomcat生产环境应用

    概要: Tomcat各核心组件认知 Tomcat server.xml 配置详解 Tomcat IO模型介绍 一.Tomcat各组件认知 Tomcat架构说明 Tomcat组件及关系详情介绍 Tomc ...

  5. git指令-添加远程仓库

    git指令-添加远程仓库 首先在GitHub上创建属于你自己的远程仓库:例如我创建的远程仓库mybatis用于我最近保存的mybatis代码 目前,在GitHub上的这个learngit仓库还是空的, ...

  6. Filter过滤器Listener:监听器

    Filter过滤器 1. 概念 web中的过滤器:当访问服务器资源是,过滤器可以将请求拦截下来,完成一些特殊功能: 过滤器的作用 完成通用的操作:例如登录验证.统一编码处理.敏感字符过滤... 快速入 ...

  7. CSS3详解:border color

    继续我们的 ,大家觉得怎么样呢?

  8. DUBBO 面试灵魂18问

    一.Dubbo 是什么 dubbo 是一个分布式框架,是一个远程服务调用的分布式框架,其核心部分包含: 1)集群容错: 提供基于接口方法的透明远程过程调用,包含多协议支持,以及软负债均衡.失败容错.地 ...

  9. 华为物联网IoT学习笔记目录

    实验准备: 1.<小熊派功能介绍> 2.<小熊派硬件分析> 3.<STM32Cube软件安装介绍> 4.<MDK软件安装介绍> 5.<华为 IoT ...

  10. php 防注入

    a. 打开magic_quotes_gpc或使用addslashes()函数 当php.ini里的 magic_quotes_gpc 为On 时. 提交的变量中所有的 ' (单引号), "  ...