#include<iostream>
#include<cstdio>
#define ll long long
using namespace std;
ll n,ans;
int main()
{
freopen("phi.in","r",stdin);
freopen("phi.out","w",stdout);
cin>>n;ans=n;
for(ll i=;i*i<=n;i++){
if(n%i==){
while(n%i==)n/=i;
ans=ans/i*(i-);
}
}
if(n>)ans=ans/n*(n-);
cout<<ans<<endl;
fclose(stdin);fclose(stdout);
return ;
}

暴力40不粘了

正解很好的思路

/*
公式变形 F[n]=p1^(a1-1)*(p1-1) + p2^(a2-1)*(p2-1) + ....
Dfs 每个 p a
如果剩下一项 p-1 p是素数 就不用再分解了
可以特判掉 判断比较大的数是不是素数 这里用的 Miller Rabin 或者 Fermat
这不是重点 说不定sqrt暴力判常熟写的小一点也能过 没试过233 还有一点就是 为什么 x+1>prime[num]的时候才直接放进去
一开始认为的是防止小的多次统计 但是去重之后答案还是不对
似乎还有什么没有想到的 如果有大神想到了为什么 欢迎留言
*/
#include<cstdio>
#include<ctime>
#include<iostream>
#include<cstdlib>
#include<algorithm>
#define ll long long
#define maxn 100010
#define C 10000000
using namespace std;
ll n,k,prime[C/],num,ans[maxn];
bool f[C+];
void Get(){
int x=min((ll)C,n*);
for(int i=;i<=x;i++){
if(f[i]==)prime[++num]=i;
for(int j=;j<=num;j++){
if(i*prime[j]>x)break;
f[i*prime[j]]=;
if(i%prime[j]==)break;
}
}
}
ll mul(ll x,ll y,ll z){
ll r=;
while(y){
if(y&){
r+=x;r%=z;y--;
}
x<<=;x%=z;y>>=;
}
return r;
}
ll Qc(ll x,ll y,ll z){
ll r=;
while(y){
if(y&)r=mul(r,x,z);
y>>=;x=mul(x,x,z);
}
return r;
}
/*
bool Is_prime(ll x){
for(ll i=1;i<=10;i++){
ll y=rand()%C+1;
if(y<0)y=-y;
ll z=Qc(y,x-1,x);
if(z!=1)return 0;
}
return 1;
}*/
bool Is_prime(ll n)
{
if(n<)return ;
if(n==)return ;
if(n%==)return ;
ll m=n-,j=;
while(m%==) {
j++;
m >>=;
}
for(int i=;i<=;i++){
ll a=rand()%(n-)+;
ll x=Qc(a,m,n);
ll y;
for(int k=;k<=j;k++){
y=mul(x,x,n);
if(y==&&x!=&&x!=n-)return ;
x=y;
}
if(x!=)return ;
}
return ;
}
void Dfs(ll x,ll y,int z){
if(x==){
ans[++ans[]]=y;return;
}
if(z<=)return;
if(x+>prime[num]&&Is_prime(x+))// ?????
ans[++ans[]]=y*(x+);
for(int i=z;i>=;i--)
if(x%(prime[i]-)==){
ll a=x/(prime[i]-),b=y,c=;
while(a%c==){
b*=prime[i];Dfs(a/c,b,i-);c*=prime[i];
}
}
}
int main()
{
freopen("arc.in","r",stdin);
freopen("arc.out","w",stdout);
cin>>n>>k;srand(time());
Get();Dfs(n,,num);
sort(ans+,ans++ans[]);
for(int i=;i<=k;i++)
cout<<ans[i]<<" ";
return ;
}

暴力筛法60

#include<iostream>
#include<cstdio>
#define ll long long
#define maxn 10000010
using namespace std;
int n;
ll ans,f[maxn];
void X(ll x)
{
for(int i=;i<=x;i++)f[i]=i;
for(int i=;i<=x/;i++){
if(f[i]==i){
for(int j=i;j<=x;j+=i){
f[j]=f[j]*(i-)/i;
}
}
}
}
int main()
{
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
cin>>n;
if(n==){
cout<<""<<endl;return ;
}
X(n);ans=;
for(int i=;i<=n;i++){
if(f[i]==i)f[i]--;
ans+=f[i];
}
cout<<ans<<endl;
fclose(stdin);fclose(stdout);
return ;
}

11.2 afternoon的更多相关文章

  1. 11.3 afternoon

    迭代40 #include<cstdio> #include<cstring> using namespace std; int n,sum,falg; ],c[]; void ...

  2. 11.1 afternoon

    幸运数字(number)Time Limit:1000ms Memory Limit:64MB题目描述LYK 最近运气很差,例如在 NOIP 初赛中仅仅考了 90 分,刚刚卡进复赛,于是它决定使用一些 ...

  3. 地区sql

    /*Navicat MySQL Data Transfer Source Server : localhostSource Server Version : 50136Source Host : lo ...

  4. English trip -- VC(情景课) 6 C Is your class at 11:00? 你的课11点开始吗?

    Grammar focus 语法点 Is your class  at 11:00 ?  # 带be动词的一般疑问句 Yes, it is No, it isn't   相当于 is not  Pra ...

  5. 清北学堂—2020.1提高储备营—Day 2 afternoon(线段树、树状数组)

    qbxt Day 2 afternoon --2020.1.18 济南 主讲:李佳实 目录一览 1.线段树 2.二叉搜索树(略过) 3.树状数组 总知识点:基础数据结构(本人初学感觉好难) 一.线段树 ...

  6. WinForm 天猫2013双11自动抢红包【源码下载】

    1. 正确获取红包流程 2. 软件介绍 2.1 效果图: 2.2 功能介绍 2.2.1 账号登录 页面开始时,会载入这个网站:https://login.taobao.com/member/login ...

  7. C++11特性——变量部分(using类型别名、constexpr常量表达式、auto类型推断、nullptr空指针等)

    #include <iostream> using namespace std; int main() { using cullptr = const unsigned long long ...

  8. CSS垂直居中的11种实现方式

    今天是邓呆呆球衣退役的日子,在这个颇具纪念意义的日子里我写下自己的第一篇博客,还望前辈们多多提携,多多指教! 接下来,就进入正文,来说说关于垂直居中的事.(以下这11种垂直居中的实现方式均为笔者在日常 ...

  9. C++ 11 多线程--线程管理

    说到多线程编程,那么就不得不提并行和并发,多线程是实现并发(并行)的一种手段.并行是指两个或多个独立的操作同时进行.注意这里是同时进行,区别于并发,在一个时间段内执行多个操作.在单核时代,多个线程是并 ...

随机推荐

  1. Windows7のping応答の設定

    2015年11月13日 18時09分 wanglinqiang整理 ping応答しない場合.ping応答させる.させない等の設定 1.スタート(左下のウィンドウズのロゴ)⇒コントロールパネルを選択. ...

  2. 解决类型“System.Web.UI.UpdatePanel”不具有名为“Gridview”的公共属性,

    类型“system.web.ui.updatepanel” 不具有名为“XXX”的公共属性,其实原因很简单.就是少了一个<ContentTemplate></ContentTempl ...

  3. [AHOI2015 Junior] [Vijos P1943] 上学路上 【容斥+组合数】

    题目链接:Vijos - P1943 题目分析 这是 AHOI 普及组的题目,然而我并不会做= =弱到不行= = 首先,从 (x, 0) 到 (0, y) 的最短路,一定是只能向左走和向上走,那么用组 ...

  4. 减少 WAF 漏报的 8 种方法 !

    近十年来,WAF 已经逐渐发展成熟,被软件行业接受并成为无数企业保护应用的不二选择.很多大型企业甚至相继亲自设计或通过并购涉足其中,在这个硕大的市场里逐鹿竞争,同时也推动了应用层防火墙的技术演进. 与 ...

  5. MySQL中group_concat函数,用符号连接查询分组里字段值

    http://blog.csdn.net/my_yang/article/details/7186844

  6. 深入浅出Node.js (附录D) - 搭建局域NPM仓库

    D.1 NPM仓库的安装 D.1.1 安装Erlang和CouchDB D.1.2 搭建NPM仓库 D.2 高阶应用 D.2.1 镜像仓库 D.2.2 私有模块应用 D.2.3 纯私有仓库 D.3 总 ...

  7. VM Depot 中国上的 Bitnami 镜像更新至 Ubuntu 14.04 LTS

     发布于 2014-08-13 作者 陈 忠岳 随着越来越多中国本地镜像源源不断地加入,  VM Depot 中国站点也在日益壮大(http://msopentech.com/?p=865871) ...

  8. 在C#中使用WIA获取扫描仪数据

    WIA(Windows Image Acquire,最新版本2.0)是Windows中一组从设备中捕获图像的标准API集合,它可以从设备(例如扫描仪.数码相机)中获取静态图像,以及管理这些设备.它既是 ...

  9. apache 服务发布多个项目,只需要更改配置文件(需要设定虚拟主机)

    http://www.php186.com/content/article/apache/24609.html http://blog.sina.com.cn/s/blog_6b689d5901013 ...

  10. 游戏开发设计模式之命令模式(unity3d 示例实现)

    博主才学尚浅,难免会有错误,尤其是设计模式这种极富禅意且需要大量经验的东西,如果哪里书写错误或有遗漏,还请各位前辈指正. 打 算写设计模式的目的就是,首先自己可以理清思路,还有就是国内的设计模式资料很 ...