• A. Tile Painting


    A. Tile Painting

    time limit per test

    1 second

    memory limit per test

    256 megabytes

    input

    standard input

    output

    standard output

    Ujan has been lazy lately, but now has decided to bring his yard to good shape. First, he decided to paint the path from his house to the gate.

    The path consists of nn consecutive tiles, numbered from 11 to nn. Ujan will paint each tile in some color. He will consider the path aesthetic if for any two different tiles with numbers ii and jj, such that |j−i||j−i| is a divisor of nn greater than 11, they have the same color. Formally, the colors of two tiles with numbers ii and jj should be the same if |i−j|>1|i−j|>1 and nmod|i−j|=0nmod|i−j|=0 (where xmodyxmody is the remainder when dividing xx by yy).

    Ujan wants to brighten up space. What is the maximum number of different colors that Ujan can use, so that the path is aesthetic?

    Input

    The first line of input contains a single integer nn (1≤n≤10121≤n≤1012), the length of the path.

    Output

    Output a single integer, the maximum possible number of colors that the path can be painted in.

    Examples

    input

    Copy

    4
    

    output

    Copy

    2
    

    input

    Copy

    5
    

    output

    Copy

    5
    

    Note

    In the first sample, two colors is the maximum number. Tiles 11 and 33 should have the same color since 4mod|3−1|=04mod|3−1|=0. Also, tiles 22 and 44 should have the same color since 4mod|4−2|=04mod|4−2|=0.

    In the second sample, all five colors can be used.

     还是说找规律,写2-10的样例,发现质数一定是本身数量,合数大部分是1,4是2,9是3,也就可以猜测出平方数就是其开方的结果,交上去发现WA了,又验证16,25.发现16并非如此,只有25才是这样。

    1. # include
    2. #include
    3. # include
    4. # include
    5. # include
    6. using namespace std;
    7. typedef long long int ll;
    8. int main()
    9. {
    10. ll n;
    11. cin>>n;
    12. ll x=n;
    13. ll cnt=0,flag=0,ans;
    14. for(ll i=2;i*i<=x;i++)
    15. {
    16. if(x%i==0)
    17. {
    18. while(x%i==0)
    19. {
    20. x/=i;
    21. }
    22. ans=i;
    23. cnt++;
    24. }
    25. }
    26. if(x>1)
    27. {
    28. cnt++;
    29. flag=1;
    30. }
    31. if(cnt==1&&flag)
    32. {
    33. cout<
    34. }
    35. else
    36. {
    37. if(cnt==1)
    38. {
    39. cout<
    40. }
    41. else
    42. {
    43. cout<<1;
    44. }
    45. }
    46. return 0;
    47. }

    那就猜测质因数是1个的情况,交上去发现A了。

    可以说C题的数论主要还是GCD与质因数分解,往这方面多想想就行

  • 相关阅读:
    业务-(课程-章节-小节)+课程发布一些业务思路
    ES6 class类
    重新认识面向对象——Java写了五年,你真的弄明白什么是面向对象了吗?不,你一直都是在面向过程编程
    安卓自动化之minicap截图
    Go语言实践模式 - 函数选项模式(Functional Options Pattern)
    基于JavaWeb+SpringBoot+掌上社区疫苗微信小程序系统的设计和实现
    yolov8-obb旋转目标检测详细流程
    C#快速排序算法
    手写验证码(附代码)
    HCIE-灾备技术和安全服务
  • 原文地址:https://blog.csdn.net/jisuanji2606414/article/details/126322518