[题目ID:1194]三质数——题解

全站通过率:17.63%(2024.7.24 17:09)

题目

【题目描述】
判断输入的数是否为“三质数”。
(三质数:只有三个不同因数的数。)
【输入格式】
第一行一个整数T,表示有T组测试数据。
每组测试数据输入一个整数n。
【输出格式】
对于每组测试数据,判断是否是三质数,如果是输出YES,否则输出NO。
【约定】
1<=n<=10^12,t<=10^3——————10年OI一场空…

【解析】
本题的难点在于,n的数据范围过大,暴力枚举会TLE,又没有办法判断它是不是“三质数”。
其实,我们仅需依次满足以下3个要求:
1:你会C++
2:它3个不同的因数。
3:它只有3个不同的因数。
那么,什么样的数有(至少)3个不同的因数呢?
答案是——完全平方数
满足了第2个要求(当然,还有第1个),你就能写出第3个要求的代码了。
核心代码:

判断是否是完全平方数:

(double)sqrt(n) == (int)sqrt(n)

制作不易,点个赞吧b( ̄▽ ̄)d

5 个赞