• 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

  • 相关阅读:
    超声波测距(避障)材质检测
    Centos7 之PostgresSQL11.x 安装及插件安装
    【C++】宏函数的巧用
    【人工智能】xAI——“X宇宙”又增添了一位新成员
    【JavaScript 算法】链表操作:从基础到进阶
    大学毕业五年的经历与思考
    关于foreach标签传值为list的拼接条件问题,得用size来判断非空
    十天学前端之JS篇(七)
    山西电力市场日前价格预测【2023-10-02】
    Springboot-aop的使用
  • 原文地址:https://blog.csdn.net/qq_62242287/article/details/126693069