除1,1其他外国x,y不等于

为 x<y 案件 一切y有phi(y)组合

F[x]= phi(i) 2<=i<=x

结果为 2*F[x]+1

Problem A

Send a Table


Input: Standard Input

Output: Standard Output

When participating in programming contests, you sometimes face the following problem: You know how to calcutale the output for the given input values, but your algorithm is way too slow to ever pass the time limit. However hard you try, you just can't discover
the proper break-off conditions that would bring down the number of iterations to within acceptable limits.

Now if the range of input values is not too big, there is a way out of this. Let your PC rattle for half an hour and produce a table of answers for all possible input values, encode this table into a program, submit it to the judge, et voila: Accepted in
0.000 seconds! (Some would argue that this is cheating, but remember: In love and programming contests everything is permitted).

Faced with this problem during one programming contest, Jimmy decided to apply such a 'technique'. But however hard he tried, he wasn't able to squeeze all his pre-calculated values into a program small enough to pass the judge. The situation looked hopeless,
until he discovered the following property regarding the answers: the answers where calculated from two integers, but whenever the two input values had a common factor, the answer could be easily derived from the answer for which the input values were divided
by that factor. To put it in other words:

Say Jimmy had to calculate a function Answer(x, y) where x and y are both integers in the range [1, N].  When he knows Answer(x, y), he can easily derive Answer(k*x, k*y), where k is any integer from it by applying some simple calculations involving Answer(x,
y) and k. For example if N=4, he only needs to know the answers for 11 out of the 16 possible input value combinations: Answer(1, 1), Answer(1, 2), Answer(2, 1), Answer(1, 3), Answer(2, 3), Answer(3, 2), Answer(3, 1), Answer(1, 4), Answer(3, 4), Answer(4,
3) and Answer(4, 1). The other 5 can be derived from them (Answer(2, 2), Answer(3, 3) and Answer(4, 4) from Answer(1, 1), Answer(2, 4) from Answer(1, 2), and Answer(4, 2) from Answer(2, 1)). Note that the function Answer is not symmetric, so Answer(3, 2) can
not be derived from Answer(2, 3).

Now what we want you to do is: for any values of N from 1 upto and including 50000, give the number of function Jimmy has to pre-calculate.

Input

The input file contains at most 600 lines of inputs. Each line contains an integer less than 50001 which indicates the value of N. Input is terminated by a line which contains a zero. This line should not be processed.

Output

For each line of input produce one line of output. This line contains an integer  which indicates how many values Jimmy has to pre-calculate for a certain value of N.

Sample Input                               Output for Sample Input

2

5

0

         

3

19


Problem setter: Little Joey

Special Thanks: Shahriar Manzoor

 

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm> using namespace std; const int maxn=55000; long long int phi[maxn]; void phi_table()
{
phi[1]=1LL;
for(int i=2;i<maxn;i++)
{
if(!phi[i])
{
for(int j=i;j<maxn;j+=i)
{
if(!phi[j]) phi[j]=j;
phi[j]=phi[j]/i*(i-1);
}
}
}
for(int i=3;i<maxn;i++)
{
phi[i]+=phi[i-1];
}
} int n; int main()
{
phi_table();
while(scanf("%d",&n)!=EOF&&n)
{
if(n==1)
{
puts("1"); continue;
}
printf("%lld\n",1+phi[n]*2);
}
return 0;
}

版权声明:本文博客原创文章。博客,未经同意,不得转载。

UVA 10820 Send a Table euler_phi功能的更多相关文章

  1. UVA 10820 - Send a Table 数论 (欧拉函数)

    Send a Table Input: Standard Input Output: Standard Output When participating in programming contest ...

  2. UVa 10820 - Send a Table(欧拉函数)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  3. UVa 10820 - Send a Table

    题目:找到整数区间[1.n]中全部的互质数对. 分析:数论,筛法,欧拉函数.在筛素数的的同一时候.直接更新每一个数字的欧拉函数. 每一个数字一定会被他前面的每一个素数筛到.而欧拉函数的计算是n*π(1 ...

  4. Uva 10820 Send a Table(欧拉函数)

    对每个n,答案就是(phi[2]+phi[3]+...+phi[n])*2+1,简单的欧拉函数应用. #include<iostream> #include<cstdio> # ...

  5. UVa10820 Send a Table[欧拉函数]

    Send a TableInput: Standard Input Output: Standard Output When participating in programming contests ...

  6. uva 10820 (筛法构造欧拉函数)

    send a table When participating in programming contests, you sometimes face the following problem: Y ...

  7. 【UVA 10820】Send a Table(欧拉函数)

    Description When participating in programming contests, you sometimes face the following problem: Yo ...

  8. UVa 10820 (打表、欧拉函数) Send a Table

    题意: 题目背景略去,将这道题很容易转化为,给出n求,n以内的有序数对(x, y)互素的对数. 分析: 问题还可以继续转化. 根据对称性,我们可以假设x<y,当x=y时,满足条件的只有(1, 1 ...

  9. Uva 10820 交表

    题目链接:https://uva.onlinejudge.org/external/108/10820.pdf 题意: 对于两个整数 x,y,输出一个函数f(x,y),有个选手想交表,但是,表太大,需 ...

随机推荐

  1. SQL逆向工程

    话说有个现成的SQL数据库,四十来张表,每张表多的几十的字段,少的十几个字段.老板说为了下一步大家好好利用这个数据库中的数据,让你研究一下该数据库中的所有的表和字段之间的联系.这是一个什么性质的工作, ...

  2. fzu 1909 An Equation(水题)

    题目链接:fzu 1909 An Equation 典型的签到题. #include <stdio.h> #include <string.h> bool judge(int ...

  3. 设计模式之Prototype(c++)

    Prototype模型: 作用: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象----克隆(clone)对象. Prototype模型类图如下: 形象说明:如果客户想配钥匙(Conc ...

  4. 以&运行在后台的程序,关闭terminal后,相应进进程自动关闭

    以&运行在后台的程序,关闭terminal后,相应进进程自动关闭

  5. cocos2d-x关于CCTableView的“乱序问题”的理解

    Cocos2d-x有一个不错的控件CCTableView.之前用的时候发现有cell的顺序错乱和重复出现的问题.后来仔细看了一下源码,发现是自己用法错误.但是网上有人说是一个bug,要改源码.我发现2 ...

  6. 细说在兄弟连搞上PHP的那些事儿

    (据说大家都是这么开头的)又到6月份了,想想自己毕业已经整整一年时间了,这一年可能会是我一生中印象最最深刻的一年,从满怀希望地踏入社会到自信满满 地开始第一份工作再到2个多月后又灰溜溜地辞去工作,回到 ...

  7. lua 函数回调技巧

    技巧1: local a = {}; function b() print("Hello World") end a["sell"] = {callFunc = ...

  8. Swift - 文件,文件夹操作大全

    ios开发经常会遇到读文件,写文件等,对文件和文件夹的操作,这时就可以使用NSFileManager,NSFileHandle等类来实现. 下面总结了各种常用的操作: 1,遍历一个目录下的所有文件 1 ...

  9. ORM增删改查询例题

    public partial class Form1 : Form     {         private MydbInfoDataContext context = new MydbInfoDa ...

  10. LCS小结(O(∩_∩)O~吽吽)

    LCS!~如果你在百度上搜这个的话会出来”英雄联盟冠军联赛”,orz..但是今天要讲的LCS是最长公共子序列 ,"Longest Common Subsequence "not&q ...