时间限制: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
约定:
1<=n<=1012,数据组数不超过103
解题分析
例如121:1,11,121121只有三个质数 且121=112由此可以看出素数的平方就是三质数,也就是说某数的平方根是素数,它就是三质数代码如下
#include<bits/stdc++.h>
using namespace std;
int fzm(double l){
int k=(int)l;
if(k<l){//判断是否是小数
return 0;//是,就不是三质数
}else{//不是,那它有几个因数
int temp=0;
for(int i=1;i<=k;i++){
if(k%i==0){
temp++;
}
}
return temp;//返回temp个因数
}
}
int main(){
int t=0;
cin>>t;
double n[t+1]={0};
for(int i=1;i<=t;i++){
cin>>n[i];
}
for(int i=1;i<=t;i++){
double k=sqrt(n[i]);//平方根
int ans=fzm(k);
if(ans==2){//判断k是否是素数
cout<<"YES"<<endl;
}else{
cout<<"NO"<<endl;
}
}
}
原文链接: https://www.cnblogs.com/fangzm/p/13732246.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/203284
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!