线性方法求欧拉数-POJ2478
https://vj.xtuacm.cf/contest/view.action?cid=57#problem/I
1.当需要求1到N的欧拉数之和时用线性方法(本题)
2.当需要求单个欧拉数但数据很大用标准方法求
例如:https://vj.xtuacm.cf/contest/view.action?cid=57#problem/H
线性的方法求欧拉数代码(模板):
#include<stdio.h>
#include<string.h>
#define ll long long
const int MAXN=1000010;
int dp[MAXN];
ll a[MAXN];
int main()
{memset(dp,0,sizeof(dp));dp[1]=1;for(int i=2; i<MAXN; i++){if(dp[i])continue;for(int j=i; j<MAXN; j+=i){if(!dp[j])dp[j]=j;dp[j]=dp[j]/i*(i-1);}}a[1]=1;a[2]=1;for(int i=3;i<=MAXN;i++)a[i]=a[i-1]+dp[i];int N;while(~scanf("%d",&N),N){printf("%I64d\n",a[N]);}return 0;
}
普通方法求欧拉数:https://vj.xtuacm.cf/contest/view.action?cid=57#problem/H
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <vector>
#include <set>
#include <queue>
#define ll long long
using namespace std;
int a[4000],c[5000],d[40010];
int cnt;
void init()//筛选出质数
{int num=0;memset(d,1,sizeof(d));for(int i=2;i<=40000;i++){if(d[i]){for(int j=2*i;j<=40000;j=j+i)d[j]=0;c[num++]=i;}}
}
void fen(int n)//分解质因数
{cnt=0;for(int i=0;c[i]*c[i]<=n;i++){if(n%c[i]==0){a[cnt++]=c[i];while(n%c[i]==0)n=n/c[i];}}if(n>1)a[cnt++]=n;
}int main()
{init();int n;while(~scanf("%d",&n),n){memset(a,0,sizeof(a));fen(n);int l=n;for(int i=0;i<cnt;i++)//得出结果l=l-l/a[i];cout<<l<<endl;}return 0;
}
线性方法求欧拉数-POJ2478相关推荐
- 【数学知识】三种方法求 [1,n] 中所有数欧拉函数(线性筛欧拉函数优化至 O(n) )
整理的算法模板合集: ACM模板 ①直接求小于或等于n,且与n互质的数个数(求[1,n]中所有数的欧拉函数时间复杂度:O(nn)O(n\sqrt{n})O(nn)) ②求[1,n]之间每个数的质因数 ...
- 一般筛法求素数+快速线性筛法求素数
一般筛法求素数+快速线性筛法求素数 标签: 正则表达式算法优化扩展c 2010-08-22 01:28 28738人阅读 评论(8) 收藏 举报 分类: 算法学习资料(5) 版权声明:本文为博主原 ...
- lda 吗 样本中心化 需要_机器学习 —— 基础整理(四):特征提取之线性方法——主成分分析PCA、独立成分分析ICA、线性判别分析LDA...
本文简单整理了以下内容: (一)维数灾难 (二)特征提取--线性方法 1. 主成分分析PCA 2. 独立成分分析ICA 3. 线性判别分析LDA (一)维数灾难(Curse of dimensiona ...
- 2019牛客多校第四场 B xor (线性基求交)
xor 思路 题目是要求[l,r][l, r][l,r]的所有集合是否都可以得到xxx,那么显然我们可以对这[l,r][l, r][l,r]个线性基求交,然后再特判能否xxx能否插入,如果能插入,显然 ...
- 一般筛法和快速线性筛法求素数 求素数的一点总结
素数总是一个比较常涉及到的内容,掌握求素数的方法是一项基本功. 基本原则就是题目如果只需要判断少量数字是否为素数,直接枚举因子2 ..N^(0.5) ,看看能否整除N. 如果需要判断的次数较多,则先用 ...
- 线性筛法求素数c语言,[算法]素数筛法(埃氏筛法线性筛法)
一.素数筛的定义 给定一个整数n,求出[1,n]之间的所有质数(素数),这样的问题为素数筛(素数的筛选问题). 二.埃氏筛法(Eratosthenes筛法) 埃氏筛法又叫做Eratosthenes筛法 ...
- 隐式欧拉解常微分方程c语言,利用欧拉方法求常微分方程近似数值解.doc
利用欧拉方法求常微分方程近似数值解,欧拉微分方程,欧拉运动微分方程,欧拉平衡微分方程,欧拉型微分方程,微分方程的欧拉算法,微分方程的欧拉解法,欧拉型常微分方程,偏微分方程数值解,微分方程数值解法 利用 ...
- 机器学习中的矩阵求导的一点总结(三种方法求线性回归最佳参数)
机器学习中的矩阵求导的一点总结(三种方法求线性回归最佳参数) 转载于:https://blog.csdn.net/promisejia/article/details/80159619?ops_req ...
- 轮式里程计与激光雷达进行标定1--线性最小二乘直接线性方法
轮式里程计与激光雷达进行标定--线性最小二乘直接线性方法 轮式里程计定义 轮式里程计与激光SLAM的关系 轮式里程计标定前言 线性最小二乘 直接线性方法里程计标定 Code Result 轮式里程计定 ...
最新文章
- MySQL列的别名 insert into select from
- 清华计算机本硕博连读!中国籍袁昱博士当选2022年IEEE标准协会候任主席
- servlet——登录练习(登录页面登录请求登录请求处理)
- OpneCV3——使用SURF、SVM、BOW对图像进行分类
- php软件开发--html进阶
- qlv文件怎么转换成mp4_flv怎么转换成MP4格式
- jsp项目如何定位当前页面是哪个jsp
- 微信小程序云开发表单使用 name的形式提交后如何清空输入内容
- 二本软件工程学生的考研逆袭之路
- linux下游戏手柄测试程序
- VARCHART XGantt用户手册:如何甘特图中的数据表
- 打包或者编译python程序
- win7激活一万遍都没解决的同学请看过来
- Android规范写法
- “由于这台计算机没有远程桌面客户端访问许可证,远程会话被中断“的解决方案
- python获取B站单个视频的封面
- 人工智能领域专业术语合集
- HIVE启动的时候, The server time zone value ‘EDT‘ is unrecognized or represents more than one time zone.
- 如何以管理员身份运行命令提示符或终端窗口
- flac文件转wav_WAV文件真的比FLAC更好吗?
热门文章
- HTML5 Canvas 绘制加拿大枫叶旗
- 云服务器搭建深度学习环境
- 基于视频分析的rPPG心率检测
- 广东理工学院计算机组成原理,20年广东理工学院成人高考期末考试 计算机组成原理 复习资料(7页)-原创力文档...
- 维特智能IMU 接入ROS发布IMU数据类型话题
- 如何批量重命名为不同文件名?
- (翻译)验证码(Captcha)
- 浏览器(2):自制Chromium内核浏览器,自动统计CSDN社区打卡记录
- org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
- 云南大学通信工程827考研上岸经验分享