• 2022百度之星初赛第三场-三个因子


    小度学数学时遇到困难,请你帮帮他。
    我们知道,恰好有两个正因子的数是质数。现在小度突发奇想,他想判断一个数是不是恰好有三个因子?
    给定n个正整数,请你分别判断它们是否恰好有三个不同的正因子。
    格式
    输入格式:第-行包含一个整数n(1 < n≤105),示数字个数。
    接下来n行,每行包含一个正整数a:(1 ≤ai≤1012)。
    输出格式:共n行,每行一个YES或NO, 示a;是否恰好有三个不同的正因子
    样例1
    输入: 3

    4 5 6
    输出: YES
    NO

    NO

    思路:要求判断给定数字是不是只有三个因子,任何数字都至少包括两个因子:1和本身,因此我们要求的就变成了一个数除了1和本身后还有个单独的因子,因此这个数必定是一个平方数,只要该平方因子是质数那么必定只有三个因子;

    AC代码:

    1. #include
    2. #include
    3. #include
    4. #include
    5. #include
    6. #include
    7. #include
    8. #include
    9. using namespace std;
    10. #define ll long long
    11. #define PII pair
    12. bool is_prime(ll n)
    13. {
    14. if(n<2) return 0;
    15. for(ll i=2;i<=n/i;i++)
    16. if(n%i==0)
    17. return 0;
    18. return 1;
    19. }
    20. int main()
    21. {
    22. int t;
    23. cin>>t;
    24. while(t--)
    25. {
    26. ll a;
    27. cin>>a;
    28. ll x=sqrt(a);
    29. if(x*x!=a)
    30. puts("NO");
    31. else if(is_prime(x))
    32. puts("YES");
    33. else
    34. puts("NO");
    35. }
    36. }

    小度学数学时遇到困难,请你帮帮他。
    我们知道,恰好有两个正因子的数是质数。现在小度突发奇想,他想判断一个数是不是恰好有三个因子?
    给定n个正整数,请你分别判断它们是否恰好有三个不同的正因子。
    格式
    输入格式:第-行包含一个整数n(1 < n≤105),示数字个数。
    接下来n行,每行包含一个正整数a:(1 ≤ai≤1012)。
    输出格式:共n行,每行一个YES或NO, 示a;是否恰好有三个不同的正因子
    样例1
    输入: 3

    4 5 6
    输出: YES
    NO

    NO

    小度学数学时遇到困难,请你帮帮他。
    我们知道,恰好有两个正因子的数是质数。现在小度突发奇想,他想判断一个数是不是恰好有三个因子?
    给定n个正整数,请你分别判断它们是否恰好有三个不同的正因子。
    格式
    输入格式:第-行包含一个整数n(1 < n≤105),示数字个数。
    接下来n行,每行包含一个正整数a:(1 ≤ai≤1012)。
    输出格式:共n行,每行一个YES或NO, 示a;是否恰好有三个不同的正因子
    样例1
    输入: 3

    4 5 6
    输出: YES
    NO

    NO

  • 相关阅读:
    计算机视觉系列-轻松掌握 MMDetection 中常用算法 YOLOF(一)
    【C语言】指针和数组的深入理解(第四期)
    Java项目:SSM的KTV管理系统
    某医院基于超融合架构的规划设计和应用实践
    `Algorithm-Solution` `AcWing` 920. 最优乘车
    【EI会议征稿】第三届区块链、信息技术与智慧金融国际学术会议 (ICBIS2024)
    计算小于或等于n的非负整数区间包含的1的数量
    Go程序是如何运行起来的?
    Unity UGUI的VerticalLayoutGroup(垂直布局)组件的介绍及使用
    c++vector容器
  • 原文地址:https://blog.csdn.net/qq_62242287/article/details/126693069