http://poj.org/problem?id=2478
Sample Input
2
3
4
5
0
Sample Output
1
3
5
9
求的是:sum(n) = phi(1) + phi(2) + phi(3) + ... + phi(n);
更多欧拉函数的说明:http://972169909-qq-com.iteye.com/blog/1131309
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string>
#include <set>
//#include <map>
#include <queue>
#include <utility>
#include <iomanip>
#include <stack>
#include <list>
#include <vector>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
//#include <ctime>
#include <ctype.h>
using namespace std;
#define eps 1e-8
#define PI 3.14159265358979
#define inf 0x3fffffff
#define L 1000005
long long e[L];
void Euler()
{
int i, j;
for (i = 2; i < L; i++)
e[i] = i;
for (i = 2; i < L; i++) //筛法推L以内的数的欧拉值
{
if (e[i] == i) //一定是只有素数才可进入
{
e[i] = i - 1; //素数的欧拉值
for (j = i << 1; j < L; j += i) //筛法
e[j] = e[j] - e[j]/i; //公式
}
}
for (i = 3; i < L; i++) //递推求和
e[i] += e[i-1];
}
int main()
{
int n;
Euler ();
while (scanf ("%d", &n), n)
printf ("%I64d\n", e[n]);
return 0;
}
分享到:
相关推荐
c语言实验,埃氏筛法与欧拉筛法
讲述O(n)筛法求素数的经典论文 ---------- A Linear Sieve Algorithm for Finding Prime Numbers David Gries Cornell University Jayadev Misra University of Texas at Austin
采用下述方法,求解常微分方程初值问题 y’=y-2x/y,y(0)=1,计算区间为[0, 1], 步 长为 0.1。 (1)前向欧拉法。 (2)后向欧拉法。 (3)梯形方法。 (4)改进欧拉方法。
素数周期表与欧拉素数多项式的分析,陈惟昌,陈志义,U(n) = n2 + n + 41称为欧拉素数多项式。当0 ≤ n ≤ 39时,U(n)皆为素数。华罗庚提出,可否求出一数p使n2 − n + p常表素数。本文根据狄利�
介绍了欧拉丸山法,介绍算法的形式,给出例子
利用欧拉公式,改进欧拉公式来求微分,微分方程可以更改,区间精确度可以根据需求输入
采用欧拉法、改进欧拉法、龙格库塔法(经典RK法)求解常微分方程初值问题的自编MATLAB代码。所有函数均独立成文件便于移植。代码的使用结合一个具体题目说明,题目来源为浙江大学数值计算方法作业。
用欧拉法计算微积分的源代码,以及改进的欧拉法,用matlab实现
欧拉法,改进欧拉法,R-K法解微积分方程 欧拉法,改进欧拉法,R-K法解微积分方程 欧拉法,改进欧拉法,R-K法解微积分方程 欧拉法,改进欧拉法,R-K法解微积分方程 欧拉法,改进欧拉法,R-K法解微积分方程 欧拉法,...
Euler_difference.txt+前向欧拉法+后向欧拉法+中心差分法+matlab程序
解初值问题,并在屏幕上按适当的比例和位置画出坐标轴及解的函数曲线。主要是欧拉法、改进欧拉法、四阶龙格库塔法,学会编制这两种方法的计算程序。学习计算方法课程的同学能用到,这是第三个实验,包括源代码和报告
欧拉筛法,简称欧拉筛或是欧式筛,又因为其O(n)的时间复杂度而被称为线性筛。 欧拉筛将合数分解为(最小质因数 * 一个合数)的形式,通过最小质因数来判断当前合数是否已经被标记过,与埃氏筛相比,不会对已经被...
通过本次实验,熟悉求解常微分方程初值问题的有关方法和理论,主要是欧拉法、改进欧拉法、四阶龙格库塔法,学会编制这两种方法的计算程序。体会这两种解法的功能、优缺点及适用场合。 解初值问题,并在屏幕上按适当...
利用MATLA采用欧拉法、改进欧拉法和四阶龙格库塔方法编译程序,对应着程序文件homework,求解0-5s的 。
能够在线性时间内筛出素数,并且对于计算欧拉函数值
欧拉法求解微分方程组,编程软件是VS2013,编程语言是C语言
使用改进欧拉法计算电力系统输电线路短路的极限切除时间
用隐式欧拉法求一阶常微分方程的数值解,数值计算,计算结果精确
有限体积法求解欧拉方程,翼型为naca0012
初等数论中求欧拉函数值程序初等数论中求欧拉函数值程序初等数论中求欧拉函数值程序初等数论中求欧拉函数值程序初等数论中求欧拉函数值程序初等数论中求欧拉函数值程序