UVALive - 7098 Farey Sums
发布时间:2020-12-13 21:13:51 所属栏目:PHP教程 来源:网络整理
导读:题目: 这个题目考的就是1个对称性。 在a和b之间插入ab,在b和a之间插入ab 那末a/bb/a就变成了a/(ab)(ab)/b b/(ab)(ab)/a= a/bb/a3 增量是3,全部序列的增量是若干个3的和,这样的3的个数是n的欧拉函数的1半。 所以表达式很容易求出来,先求出前n个数的欧拉
题目:
这个题目考的就是1个对称性。 在a和b之间插入a+b,在b和a之间插入a+b 那末a/b+b/a就变成了a/(a+b)+(a+b)/b+b/(a+b)+(a+b)/a=a/b+b/a+3 增量是3,全部序列的增量是若干个3的和,这样的3的个数是n的欧拉函数的1半。 所以表达式很容易求出来,先求出前n个数的欧拉函数之和phi[n],然后答案便是(phi[n] * 3 ⑴)/ 2 代码:
#include<iostream>
<stdio.h>
using namespace std;
int phi[10001];
void get_phi()
{
for (int i = 1; i <= 10000; i++)phi[i] = i;
2++)
{
if (phi== i)int j ; j += i)phi[j= phi/ i*(i - );
phi+= phi[i ];
}
}
int main{
get_phi();
int p, n;
scanf("%d"&p);
<= p{
scanf"%d%d"&n);
printf"%d %d/2n"[n* 3 -);
}
return 0;
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |