POJ 2478 Farey Sequence

POJ 2478 Farey Sequence

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

Description

The Farey Sequence Fn for any integer n with n >= 2 is the set of irreducible rational numbers a/b with 0 < a < b <= n and gcd(a,b) = 1 arranged in increasing order. The first few are 

F2 = {1/2} 

F3 = {1/3, 1/2, 2/3} 

F4 = {1/4, 1/3, 1/2, 2/3, 3/4} 

F5 = {1/5, 1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5} 

You task is to calculate the number of terms in the Farey sequence Fn.

Input

There are several test cases. Each test case has only one line, which contains a positive integer n (2 <= n <= 10
6). There are no blank lines between cases. A line with a single 0 terminates the input.

Output

For each test case, you should output one line, which contains N(n) —- the number of terms in the Farey sequence Fn. 

Sample Input

2
3
4
5
0

Sample Output

1
3
5
9

打表使用euler函数公式,注意当中巧妙的使用筛子的方法。

const int MAX_SZIE = 1000001;
__int64 phi[MAX_SZIE];
void eulerPhi()
{
	memset (phi, 0, sizeof(phi));
	for (int i = 2; i < MAX_SZIE; i++)
	{
		if (!phi[i])
		{
			for (int j = i; j < MAX_SZIE; j += i)
			{
				if (!phi[j]) phi[j] = j;
				phi[j] = phi[j] / i * (i - 1);
			}
		}
	}
	for (int i = 3; i < MAX_SZIE; i++)
	{
		phi[i] += phi[i-1];
	}
}

int main()
{
	eulerPhi();
	int n;
	while (scanf("%d", &n) && n)
	{
		printf("%lld\n", phi[n]);
	}
	return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118915.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Pycharm安装包超时:ReadTimeoutError

    Pycharm安装包超时:ReadTimeoutErrorPycharm会自动安装pip、setuptools、wheel,安装numpy等包时,由于国外服务器,导致下载延时,无法安装,可使用使用pip.exe解决。Win+R,Enter后打开cmd,在你的python工程下venv-Scripts下,pip.exe右键,ShowinExplorer,打开所在文件夹,将pip.exe拖入cmd,执行查看所有可用命令、查看当前工程已安装的包、安装包…

    2022年5月17日
    97
  • B4j教程_ubuntu以太坊挖矿

    B4j教程_ubuntu以太坊挖矿Bminer产品介绍Bminer是目前最快的挖矿程序,Bminer是基于NVIDIAGPU深度优化的挖矿软件。Bminer支持Equihash和Ethash两种算法的虚拟币,包括:ETH(以太坊),ETC,ZEC(零币),ZCL,ZEN,HUSH,BitcoinPrivate,KMD,BitcoinGold(比特币黄金)等币种。挖Ethash的币,比如ETH(以太坊),ETC,Bminer仅…

    2022年10月15日
    0
  • SVN提示update更新成功,但是本地文件却没有更新

    SVN提示update更新成功,但是本地文件却没有更新

    2021年10月20日
    39
  • 网站备案

    网站备案

    2021年9月19日
    52
  • ubuntu 局域网传输文件

    ubuntu 局域网传输文件scp[可选参数]file_sourcefile_target参数说明:-1:强制scp命令使用协议ssh1 -2:强制scp命令使用协议ssh2 -4:强制scp命令只使用IPv4寻址 -6:强制scp命令只使用IPv6寻址 -B:使用批处理模式(传输过程中不询问传输口令或短语) -C:允许压缩。(将-C标志传递给ssh,从而打开压缩功能) -p:保留原文件的修改时间,访问时间和访问权限。 -q:不显示传输进度条。 -r:递归复制整个目录。 -v:详细方.

    2022年5月24日
    37
  • IntelliJ idea 必备 好用 优秀 插件

    IntelliJ idea 必备 好用 优秀 插件1、AtomMaterialICons这是一个icon图片插件,有一个特别牛的功能就是可以优化idea流畅度,不知道是什么原理,现在这个插件成为了我必备插件2、FileExpander有了这个插件,有些小伙伴平时用的Jad工具就可以扔了,它能在Idea里直接打开Jar包3、GitToolBox这款插件现在我几乎离不开它。他能在项目上提示你还有多少文件没提交,远程还有多少文件没更新下来。还能在每一行代码上提示上次提交的时间。查版本提交问题的时候尤其方便4、MavenHelper

    2022年10月9日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号