• T246836 [LSOT-1] 暴龙的土豆


     [LSOT-1] 暴龙的土豆

    题目背景

    暴龙爱吃土豆。

     题目描述

    给定一个正整数 n。

    每次操作可以选两个素数 y,z,其中要求 z 是奇素数。

    令 x=y^z,如果 x 能除尽 n 则计为一次有效操作,n 变为 n/x。

    现在需要你回答,对于 n 最多能够进行多少次有效操作。

     输入格式

    本题有多组数据。

    第一行一个正整数 T。

    接下来 T行,每行一个正整数 n。

    输出格式

    对于每组数据,输出答案。

     样例 1

     样例输入 1
    2
    16
    9

     样例输出 1
    1
    0

     样例 2

     样例输入 2
    2
    1327104
    3623878656000

    样例输出 2
    5
    12

    提示

    【样例解释】

    对于样例一:16 可以变成 2^3 * 2,可以进行一次操作。但是 9 只能变成 3^2,所以不能进行操作。

    【数据范围】

    「本题采用捆绑测试」

    Subtask 1(10 pts):1 <=n<=10^2,1 <=T<10^2
    Subtask 2(20 pts):1 <= n<=10^6,1 <=T<=10^2;
    Subtask 3(30 pts):1 <= n<=10^12,1 <=T<=10^2;
    Subtask 4(40 pts):无特殊限制。

    对于 100%的数据,满足 1<=n<=10^18,1<=T<=10^2。

    普及-的水平,埃筛法直接先把1-10^6所有素数弄出来,然后把每个素数*3的数存放到数组里就完事了。

    1. #include
    2. using namespace std;
    3. bool isprime[1000001];
    4. long long isprime_3[1000001];
    5. const long long m1 = 1000000;
    6. long long length1 = 0;
    7. void init()
    8. {
    9. for (long long i = 2; i <= m1; i++) /*埃筛法求得1-10^6里面所有素数*/
    10. {
    11. if (isprime[i] == 0)
    12. {
    13. for (long long j = i * 2; j <= m1; j = j * 2)
    14. {
    15. isprime[j] = 1;
    16. }
    17. }
    18. }
    19. for (int i = 2; i <= m1; i++) /*把x=y*y*y*,那么我们把每个x遍历出来*/
    20. {
    21. if (isprime[i] == 0)
    22. {
    23. isprime_3[length1++] = i * i * i;
    24. }
    25. }
    26. }
    27. int main()
    28. {
    29. init();
    30. int t;
    31. cin >> t;
    32. while (t--)
    33. {
    34. long long n = 0, temp = 0, sum = 0;
    35. cin >> n;
    36. temp = n;
    37. for (int i = 0; i < length1; i++)
    38. {
    39. if (temp >= isprime_3[i]) /*temp>=isprime_3[i]才能继续做*/
    40. {
    41. while (temp % isprime_3[i] == 0)
    42. {
    43. temp = temp / isprime_3[i];
    44. sum++;
    45. }
    46. }
    47. else /*比它小结束循环*/
    48. {
    49. break;
    50. }
    51. }
    52. cout << sum << endl;
    53. }
    54. return 0;
    55. }

  • 相关阅读:
    RabbitMQ生产故障问题分析
    pyyaml操作yaml配置文件基于python
    易联众智能自动办理平台,AI赋能让数字政务服务“触手可及”
    vulnhub靶场之HARRYPOTTER: ARAGOG (1.0.2)
    LeetCode讲解篇之面试题 16.25. LRU 缓存
    PIP安装本地离线包whl
    【Android笔记45】Android中几个常用对话框的使用
    MySQL 分库分表
    WebDAV之葫芦儿·派盘+飞傲音乐
    技术对接43
  • 原文地址:https://blog.csdn.net/m0_52708559/article/details/125989002