很容易由算术基本定理知道,完全平方数就是所有质因子指数为偶数的数。而求得N以下的质因子,可由前两篇的公式知,由N!与p的关系求得。对于指数为p的,用N!除去就可以,因为p必定属于N以内,且无重复。

至于除法,在下实在不会,学得别人的,记录一下。

MOD数除法,可以由费马小定理a^(p-1)=1 (mod p)其中p为素数,求得。因为X/Y即是X*(1/Y),为乘上逆元,所以由费马小定理知a^(p-2)即是逆元。用数乘上即可。

而对于p-2比较大的情况,只能用快速幂取模的方法求解了。

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const __int64 Maxp=10000010;
const __int64 MOD=1000000007; bool isprime[Maxp];
__int64 prime[Maxp],nprime;
__int64 adds[Maxp]; void Doprime(){
nprime=0;
memset(isprime,true,sizeof(isprime));
isprime[1]=false;
for(__int64 i=2;i<Maxp;i++){
if(isprime[i]){
prime[nprime++]=i;
for(__int64 j=i*i;j<Maxp;j+=i)
isprime[j]=false;
}
}
} __int64 Pow(__int64 anst,__int64 poe){
__int64 ret=1;
__int64 tmp=anst;
while(poe){
if(poe&1) ret=(ret*tmp)%MOD;
tmp=(tmp*tmp)%MOD;
poe=(poe>>1);
}
return ret;
} int main(){
__int64 anst;
Doprime();
adds[1]=1;
for(__int64 i=2;i<Maxp;i++)
adds[i]=(adds[i-1]*i)%MOD;
__int64 n;
while(scanf("%I64d",&n),n){
anst=1;
for(__int64 i=0;prime[i]<=n&&i<nprime;i++){
__int64 c=0;
for(__int64 t=prime[i];t<=n;t*=prime[i])
c+=(n/t);
if(c&1)
anst=(anst*prime[i])%MOD;
}
printf("%I64d\n",((adds[n]*Pow(anst,MOD-2))%MOD));
}
return 0;
}

  

最新文章

  1. String的方法
  2. oracle客户端安装及Plsql devloper连接
  3. C# 仿迅雷风格选项卡
  4. 【模拟】Codeforces 691A Fashion in Berland
  5. HTML5之兴趣爱好
  6. ETL概述
  7. HTML5 Web Storage使用实例
  8. P1457 城堡 The Castle
  9. java 重定向和转发的区别
  10. c#获取文件MD5算法
  11. java基于BasicPlayer调用 播放音乐
  12. 环境搭建 - Java(Windows)
  13. [物理学与PDEs]第4章第3节 一维反应流体力学方程组 3.1 一维反应流体力学方程组
  14. 【Spark调优】Broadcast广播变量
  15. tarjan 算法求强连通分量
  16. 论文笔记:Parallel Tracking and Verifying: A Framework for Real-Time and High Accuracy Visual Tracking
  17. python + opencv 环境配置
  18. AOP技术分析
  19. 基于jQuery个性圆圈倒计时特效
  20. div里粘贴文字后,移动光标至最后

热门文章

  1. C C++每个头文件的功能说
  2. luogu2437 蜜蜂路线
  3. JS遮罩层
  4. [JavaEE] DWR入门教程
  5. zgb老师关于java集合的总结
  6. [转]Microsoft Solutions Framework (MSF) Overview
  7. [hihocoder][Offer收割]编程练习赛44
  8. json属性(Jackson)
  9. 有关Gradle Network is unreachable: connect的报错
  10. React 学习笔记:1-react 入门