三质数

时间限制:1s 空间:256M

题目描述:

一个数的约数也称为因子,比如16的因子,26的因子,66的因子。

质数只有两个因子,1和它本身

现在定义一种新的质数,三质数,三质数只有三个不同的因子。比如4是三质数,因为它有1,2,4三个因子。比如6不是三质数,因为61,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

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午9:27
下一篇 2023年2月12日 下午9:28

相关推荐