博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GCD NYOJ 1007
阅读量:4615 次
发布时间:2019-06-09

本文共 1162 字,大约阅读时间需要 3 分钟。

#include
//GCD(1007) #include
#define mod 1000000007typedef long long ll;

// 设n的质因数分别为p1,p2,.....,pn.

//求欧拉函数(即n以内所有与n互质的数的个数) 

//f(x)=n*(1-p1)*(1-p2)*...*(1-pn)

//求与n互质的数之和S(x)=f(x)/2*x 

ll euler(ll x)
{      ll res=x,i;    for(i=2;i<=sqrt(x);i++){        if(x%i==0){            res=res/i*(i-1);            while(x%i==0)x/=i;            }    }    if(x>1)res=res/x*(x-1);    return res;}void f(ll n,ll m){    ll res=0,i;    for(i=1;i<=sqrt(n);i++){        if(n%i==0){            if(n/i!=i&&n/i>=m){                if(i==1||i==2){                    res=(res+n/i)%mod;                }                else{                    res=(res+euler(i)/2*i*(n/i))%mod;                }            }            if(i>=m){                if(n/i==1||n/i==2){                    res=(res+i)%mod;                }                else{                    res=(res+euler(n/i)/2*(n/i)*i)%mod;                }            }        }    }    printf("%lld\n",res);}int main(){    ll n,m;    int x;    scanf("%d",&x);    while(x--){        scanf("%lld%lld",&n,&m);        f(n,m);    }    return 0;}

 

转载于:https://www.cnblogs.com/minimalism/p/4536632.html

你可能感兴趣的文章
JAVA基础入门(JDK、eclipse下载安装)
查看>>
最基础的applet运用--在applet上画线
查看>>
并不对劲的hdu4777
查看>>
linux使用rz、sz快速上传、下载文件
查看>>
判断数字的正则表达式
查看>>
DOC常用命令(转)
查看>>
php写一个判断是否有cookie的脚本
查看>>
Mac配置Fiddler抓包工具
查看>>
转:Java并发集合
查看>>
Word截图PNG,并压缩图片大小
查看>>
Python项目对接CAS方案
查看>>
mysql产生随机数
查看>>
编程风格
查看>>
熟悉常用的Linux命令
查看>>
易之 - 我是个大师(2014年3月6日)
查看>>
Delphi中窗体的事件
查看>>
file_get_contents()获取https出现这个错误Unable to find the wrapper “https” – did
查看>>
linux vi编辑器
查看>>
js树形结构-----(BST)二叉树增删查
查看>>
contract
查看>>