首页 > 其他分享 >HDU2588解析

HDU2588解析

时间:2023-05-31 17:35:23浏览次数:49  
标签:HDU2588 return int scanf ans 解析 互质 Euler


题目:HDU2588


题意大概:给定N,M(2<=N<=1000000000, 1<=M<=N), 求1<=X<=N 且gcd(X,N)>=M的个数。

解法:数据量太大,用常规方法做是行不通的。后来看了别人的解题报告说,先找出N的约数x,

    并且gcd(x,N)>= M,结果为所有N/x的欧拉函数之和。


   设y=N/x,y的欧拉函数为小于y且与y互质的数的个数。

   设与y互质的的数为p1,p2,p3,…,p4

   那么gcd(x* pi,N)= x >= M。


#include<stdio.h>
#include<math.h>
int Euler(int n)
{
    if(n==1)
        return 1;
    int i=2,m=n,root=(int)sqrt(n);
    while(i<=root)
    {
        if(m%i==0)
        {
            n-=n/i;
            while(m%i==0)
                m/=i;
            root=(int)sqrt(m);
        }
        i++;
    }
    if(m!=1)
    {
        n-=n/m;
    }
    return n;
}
int solve(int n,int m)
{
    int nn = sqrt(n),ans=0;
    for(int i=1;i<=nn;i++)
    {
        if(n%i) continue;
        if(i>=m&&i!=nn)
            ans += Euler(n/i);
        if(n/i>=m)
            ans += Euler(i);
    }
    return ans;
}
int main()
{
    int n,t,m;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&n,&m);
        printf("%d\n",solve(n,m));
    }
    return 0;
}



标签:HDU2588,return,int,scanf,ans,解析,互质,Euler
From: https://blog.51cto.com/u_16146153/6388615

相关文章

  • HDU4741(异面直线间的距离--空间解析几何)
    题目:http://acm.hdu.edu.cn/showproblem.php?pid=4741 题意:给定两条异面直线,求它们最近的距离和对应的坐标。#include<iostream>#include<string.h>#include<stdio.h>#include<math.h>usingnamespacestd;constdoubleeps=1e-8;//三维空间点structPoint{d......
  • Python解析XML文件
    今天学习如何利用Python来解析XML文档。给定一个XML文件,现在我们用Python来提取里面的内容。<deals><data><deal><deal_id>11111111</deal_id><sales_num>120</sales_num><price>15.0</price>......
  • 关于F5透传问题的解析
       当负载均衡工作在透传模式中时,所防护服务器无法感知到负载均衡设备的存在,对于访问者来说,服务器的IP地址就是负载均衡设备的VIP地址。在这种模式下,当负载均衡设备收到源为访问者的IP,目的IP为本地VIP地址的报文时,会将报文根据负载均衡策略和健康状况发送给最优的服务器上,......
  • [TSG开发]法如扫描仪SDK探幽-1.旧版SDK采集流程、问题解析、常见参数
    做什么法如扫描仪是一个三维的激光扫描仪,可以通过特定的作业模式将空间以三维激光点云的形式保存下来,并且通过特定的算法得出一些想要的具体参数。这个SDK探幽日志主要是对目前SDK开发中遇到的一些问题做个记录,以及对未来开发的一些指导,只是在业余时间简单写写,之后还会深入探索......
  • 驱动开发:内核解析PE结构导出表
    在笔者的上一篇文章《驱动开发:内核特征码扫描PE代码段》中LyShark带大家通过封装好的LySharkToolsUtilKernelBase函数实现了动态获取内核模块基址,并通过ntimage.h头文件中提供的系列函数解析了指定内核模块的PE节表参数,本章将继续延申这个话题,实现对PE文件导出表的解析任务,导出表......
  • TCPIP详解-地址解析协议ARP
    TCP/IP详解-地址解析协议ARPIP协议的设计目标是为跨越不同类型物理网络的分组交换提供互操作。这需要网络层软件使用的地址和底层网络硬件使用的地址之间进行转换。网络接口硬件通常有一个主要的硬件地址定位到正确的接口;否则,无法传输数据。但是,一个传统IPv4网路偶需要使用自己的......
  • wireshark解析RTSP交互
    RTSP信令交互RTSP协议即实时流协议(RealTImeStreamingProtocol,RTSP)是一种网络应用协议,用以控制流媒体服务器信息交互。大多数RTSP服务器使用实时传输协议(RTP)和实时传输控制协议(RTCP)结合媒体流传输。即客户端和服务器先进行RTSP交互,获取服务端可用命令,以及媒体参数;之后传输数据......
  • UE4 源码解析----引擎初始化流程
      在研究UE4的源码过程中着实不理解的地方有很多,今天给大家分享一下UE4引擎的初始化流程。一、引擎的函数入口C++的函数入口都是Main()函数入口,UE4也是一样,Engine\Source\Runtime\Launch\PrivateWindows函数入口 引擎入口函数为:GuardedMain 二、引擎初始化的三个阶......
  • 廖雪峰博客汇编函数压栈的解析
    intadd_a_and_b(inta,intb){returna+b;}intmain(){returnadd_a_and_b(2,3);}_add_a_and_b:push%ebxmov%eax,[%esp+8]mov%ebx,[%esp+12]add%eax,%ebxpop%ebxret_main:push3push......
  • 轻松解析JSON数据,欢迎使用Jsoneasy.com!
    大家好!今天我来向大家推荐一个强大而便捷的JSON数据解析工具——Jsoneasy.com。如果你经常处理JSON数据,无论是开发人员、数据分析师还是任何对JSON数据处理感兴趣的人,Jsoneasy.com将会成为你的得力助手。Jsoneasy.com是一个专注于JSON数据解析和处理的在线工具。它提供了简单易用......