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;
}
分享到:
相关推荐
在实际应用中,埃氏筛法和欧拉筛法都可以用于筛选质数,但欧拉筛法的效率更高,因为它可以避免重复的筛选操作。同时,欧拉筛法也可以用于解决其他类型的问题,如筛选出所有的合数等。 本资源总结了埃氏筛法和欧拉筛...
在计算机科学和数值分析领域,欧拉法和改进欧拉法是解决初值问题(IVP)中常微分方程(ODE)的常用数值方法。这两种方法属于单步法,因为它们仅依赖于上一步的解来计算下一步的近似值。下面将详细介绍这两种方法及其...
总的来说,"线性素筛 欧拉函数 区间筛素数.zip_sowoc_算法 欧拉函数 线性筛"这个压缩包文件包含了一种高效的算法实现,该算法能够在线性时间内筛选素数,并且能快速计算欧拉函数值,适用于需要处理大量素数和欧拉...
改进的欧拉法,也称为半隐式欧拉法,通过考虑前一步和当前步的信息来提高精度,迭代公式为: \[ y_{n+1} = y_n + h \cdot \left( \frac{1}{2}f(t_n, y_n) + \frac{1}{2}f(t_{n+1}, y_{n+1}) \right) \] 这种方法在...
欧拉丸山法,也称为欧拉-马斯刻罗尼法(Euler-Mascheroni Method),是一种常微分方程(Ordinary Differential Equation, ODE)的数值解法,由18世纪的数学家欧拉和马斯刻罗尼提出。这种方法是基于欧拉方法的发展,...
采用下述方法,求解常微分方程初值问题 y’=y-2x/y,y(0)=1,计算区间为[0, 1], 步 长为 0.1。 (1)前向欧拉法。 (2)后向欧拉法。 (3)梯形方法。 (4)改进欧拉方法。
2. **改进欧拉法**:改进欧拉法也称为后向欧拉法,相较于欧拉法,它利用了未来时间点的信息,提高了精度。改进欧拉法在每个步长中考虑了函数在该步长内的平均变化,从而得到更准确的近似解。 3. **龙格-库塔法**:...
改进欧拉法,也称为半隐式欧拉法,是对欧拉法的改进,引入了前一步的误差信息,以提高解的精确度。迭代公式如下: \[ y_{n+1} = y_n + \frac{h}{2} \left( f(x_n, y_n) + f(x_{n+1}, y_{n+1}) \right) \] 相比于...
改进欧拉法,也称为中点法则或半隐式欧拉法,其基本思想是在每一步迭代中,首先用前一步的值预测未来状态,然后使用平均速度进行校正。具体算法步骤如下: 1. 初始化:设定初始条件,包括时间步长\(h\)、起始时间\...
Euler_difference.txt+前向欧拉法+后向欧拉法+中心差分法+matlab程序
改进欧拉法也称为半隐式欧拉法,它在计算下一个时间步的解时考虑了当前步和前一步的信息,提高了精度。公式如下: \( y_{n+1} = y_n + \frac{h}{2} [f(t_n, y_n) + f(t_{n+1}, y_{n+1})] \) 这种方法比欧拉法更...
在数值计算领域,欧拉法(Euler method)和Runge-Kutta方法(简称RK法)是两种常用求解常微分方程初值问题的数值积分方法。本报告将详细探讨这两种方法,并通过源码实现对一个三变量微分方程组的模拟,展示它们在...
欧拉法(Euler method)是一种基础且直观的数值方法,用于近似解决常微分方程组(ODEs)。它的名字来源于18世纪的数学家莱昂哈德·欧拉,他是数值分析领域的先驱之一。在VS2013环境下使用C语言实现欧拉法,可以帮助...
改进欧拉法(也称为半隐式欧拉法或Heun's方法),其误差阶为2,通过在每一步中使用前一步的预测值和当前步的估计值,从而提高了精度。 在MATLAB中,我们可以按照以下步骤实现改进欧拉法: 1. **定义方程组**:首先...
改进欧拉法结合了向前欧拉法和向后欧拉法的思想,采用了一个预测-校正步骤来近似解。这种方法通过预测下一步的解然后对其进行修正来提高准确性。 **公式表示**: 设有一个常微分方程 \(\frac{dy}{dx} = f(x, y)\),...
欧拉法,改进欧拉法,R-K法解微积分方程 欧拉法,改进欧拉法,R-K法解微积分方程 欧拉法,改进欧拉法,R-K法解微积分方程 欧拉法,改进欧拉法,R-K法解微积分方程 欧拉法,改进欧拉法,R-K法解微积分方程 欧拉法,...
[计算方法作业]利用python中matplotlib实现绘制欧拉法、改进欧拉法、四阶龙格-库塔法图像,利用欧拉法、改进欧拉法、四阶龙格-库塔法实现微分方程,用python中的matplotlib库实现图像的绘制
对于一阶常微分方程y' = f(x, y),欧拉法的公式为:y_{n+1} = y_n + h * f(x_n, y_n),其中h是步长,x_n和y_n分别是当前节点的自变量和因变量值。 改进欧拉法,又称前向欧拉法或半隐式欧拉法,是对欧拉法的改进,...