题目:http://poj.org/problem?id=1286

真·Polya定理模板题;

写完以后感觉理解更深刻了呢。

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long ll;
int n;
ll ans;
ll pw(ll a,int b)
{
ll ret=;
for(;b;b>>=,a*=a)
if(b&)ret*=a;
return ret;
}
int gcd(int a,int b){return (a%b==)?b:gcd(b,a%b);}
ll rot(int n)
{
ll ret=;
for(int i=;i<n;i++)
ret+=pw(,gcd(i,n));
return ret;
}
ll d(int n)
{
if(n%)return (ll)n*pw(,(n-)/+);
return (ll)n/*(pw(,n/)+(ll)pw(,(n-)/+));
}
int main()
{
while()
{
scanf("%d",&n);
if(!n)
{
printf("0\n"); continue;//!
}
if(n==-)return ;
ans=(rot(n)+d(n))/(*n);
printf("%lld\n",ans);
}
}

最新文章

  1. C# Entity Framework并发处理
  2. Java多线程系列--“JUC锁”06之 Condition条件
  3. 登陆验证前对用户名和密码加密之后传输数据---base64加密
  4. MySQL mysqldump数据导出详解 --dump-slave 注意事项
  5. 初识 .NET平台下作业调度器——Quartz.NET
  6. mui开发app之cropper裁剪后上传头像的实现
  7. mysql安装教程以及配置快捷方式
  8. Maven1-HelloWorld简单入门
  9. 一篇博客带你入门Flask
  10. web前端学习python之第一章_基础语法(二)
  11. canvas意料之外获得降龙十八掌的效果
  12. c# 对DataTable进行分组group by
  13. C# 8.0的新的using语法——Using declarations
  14. 7.16顺便贴一下 pep8的标准
  15. 0-1背包dp|波动数列|2014年蓝桥杯A组10-fishers
  16. demo:使用数字证书进行数字签名和加密,解密
  17. Joint Stacks---hdu5818(栈模拟)
  18. Error: Couldn&#39;t find preset &quot;env&quot; relative to directory &quot;/Users/user/ethereumjs-vm&quot;
  19. 雷林鹏分享:Ruby XML, XSLT 和 XPath 教程
  20. Linux入门第二天——基本命令入门(中)

热门文章

  1. 树莓派 -- oled
  2. 基于Vue的简单日历组件
  3. [学习资料] Tiny210(S5PV210) u-boot移植
  4. Python之面向对象slots与迭代器协议
  5. 10 行 Python 代码,批量压缩图片 500 张,简直太强大了
  6. Django 模版语法 一
  7. java连接MySQL数据库并读取内容
  8. HDU 3749 Financial Crisis(点-双连通分量)
  9. 51nod 1010 只包含因子2 3 5的数 &amp;&amp; poj - 1338 Ugly Numbers(打表)
  10. 51 nod 1007 正整数分组 (简单01背包) &amp;&amp; csu 1547: Rectangle