利用x<n的信息,可以证得当n为素数时,he[n]=2;同时,若n 为素数,则有HE[N^K]=2;因为若等式成立则有n|x(x-1)。抓住这个证即可。

至于符合积性函数,想了很久也没想出来,看了看网上的,觉得是不对的。

但试过几个数后,确实符合积性函数,就当是猜想吧。

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cmath>
#define LL __int64
using namespace std; const LL N=10000005; bool isprime[N];
int pme[N],np; void initial(){
memset(isprime,true,sizeof(isprime));
np=0;
isprime[1]=false;
for(LL i=2;i<N;i++){
if(isprime[i]){
pme[np++]=i;
for(LL j=i*i;j<N;j+=i){
isprime[j]=false;
}
}
}
} LL work(LL n){
LL rs=0;
for(int i=0;i<np&&pme[i]<=n;i++){
rs+=(n/pme[i]);
}
return rs;
} LL quick(LL a,LL b,LL m){
LL res=1;
while(b){
if(b&1)
res=(res*a)%m;
b>>=1;
a=(a*a)%m;
}
return res;
} int main(){
LL n,m;
int T;
initial();
scanf("%d",&T);
while(T--){
scanf("%I64d%I64d",&n,&m);
LL k=work(n);
LL ans=quick((LL)2,k,m);
printf("%I64d\n",ans);
}
return 0;
}

  

HDU 2879的更多相关文章

  1. 积性函数,线性筛入门 HDU - 2879

    HDU - 2879HeHe 题意:He[N]为[0,N−1]范围内有多少个数满足式子x2≡x (mod N),求HeHe[N]=He[1]×……×He[N] 我是通过打表发现的he[x]=2k,k为 ...

  2. HDU 2879 数论

    HeHe Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Submis ...

  3. 转载:hdu 题目分类 (侵删)

    转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...

  4. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  5. codevs 2879 堆的判断

    codevs 2879 堆的判断 http://codevs.cn/problem/2879/ 题目描述 Description 堆是一种常用的数据结构.二叉堆是一个特殊的二叉树,他的父亲节点比两个儿 ...

  6. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

  7. BZOJ 2879: [Noi2012]美食节

    2879: [Noi2012]美食节 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1834  Solved: 969[Submit][Status] ...

  8. hdu 4859 海岸线 Bestcoder Round 1

    http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...

  9. HDU 4569 Special equations(取模)

    Special equations Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

随机推荐

  1. Java&amp;Xml教程(十一)JAXB实现XML与Java对象转换

    JAXB是Java Architecture for XML Binding的缩写,用于在Java类与XML之间建立映射,可以帮助开发人员非常方便的將XML和Java对象进行相互转换. 本文以一个简单 ...

  2. 【Java基础】--再谈面向对象

    面向对象总结 V1.0     2014.9.14 面向对象总结V2.0   2015.8.14 对照之前的J2SE总结,发现现在的似乎更加的注重联系,開始能把细节的东西都编制到知识网络里面,导图的图 ...

  3. Struts2值栈的相关操作

    import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; import ...

  4. cvReadTrainData

    cvReadTrainData的源代码在opencv的cvboost.cpp文件之中,详细内容例如以下所看到的: CV_BOOST_IMPL void cvReadTrainData( const c ...

  5. Codeforces Beta Round #29 (Div. 2, Codeforces format) C. Mail Stamps 拓扑排序

    C. Mail Stamps     One day Bob got a letter in an envelope. Bob knows that when Berland's post offic ...

  6. HDU 5493 Queue 树状数组+二分

    Queue Problem Description N people numbered from 1 to N are waiting in a bank for service. They all ...

  7. Swift String转Character数组

    通过String的characters方法,将String转Character数组 例如: let characters:Array<Character> = Array("01 ...

  8. oracle调优使用到相关sql

    select * from v$session where username is not null;select username,count(username) from v$session wh ...

  9. js获取当前位置的地理坐标(经纬度)

    在 freecodecamp 上学习时,碰到获取地理坐标问题.写个笔记纪录下. if(navigator.geolocation) { navigator.geolocation.getCurrent ...

  10. Hihocoder1458-Parentheses Matching(stack,vector)

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Given a string of balanced parentheses output all the matchin ...