XJOI"/>
XJOI
时间限制:1s 空间:256M
题目描述:
一个数的约数也称为因子,比如1是6的因子,2是6的因子,6是6的因子。
质数只有两个因子,1和它本身
现在定义一种新的质数,三质数,三质数只有三个不同的因子。比如4是三质数,因为它有1 ,2, 4三个因子。比如6不是三质数,因为6有1 ,2, 3, 6四个因子。现在有一些数,你需要判断他们是不是三质数。
输入格式:
第一行一个整数T,表示有T组测试数据。
每组测试数据输入一个整数n
输出格式:
对于每组测试数据,判断是否是三质数,如果是输出YES,否则输出NO
样例输入:
3 4 5 6
样例输出:
YES
NO
NO
约定:
,数据组数不超过
本来是想:“OK简单直接打代码”,打完后。。。
nice!TLE……(TLE = Time Limit Enough = 时间充裕(bushi))
再来了一次,ohhhhhhhhhh!!!!!
居然WA啦(WA = Wonderful Answer = 好答案)[doge]
我一开始的思路是求不同质子个数,就TLE了
后来想省去一些搜索质子步骤,好家伙结果就WA;
后来一个朋友启发了我:平方数!
只有三个因子的数只有平方数;
好,那么我们就可以将问题简化为(通过判断一个数的平方根是否为整数,来判断是否为三质数)
今天就没那啥很糙的草图了,作者觉得其实思路给了就OK了
小猛新:OK个P啊,怎么判断一个数的平方根是否为整数啊!
我:。。。鬼!
if(double(sqrt(x))==int(sqrt(x))) ;
判断一个数的平方根是否为整数如上;
好了,重要的讲完了,附上AC代码,拜拜!
#include <bits/stdc++.h>
using namespace std;
int main()
{int t;cin>>t;while(t--){int n;cin>>n;if(double(sqrt(n))==int(sqrt(n))){cout<<"YES";}else cout<<"NO";cout<<endl;}
}
更多推荐
XJOI
发布评论