/*
φ(n)=φ(p^k)=p^k-p^(k-1)=(p-1)*p^(k-1)
φ(m*n)=φ(m)*φ(n)
直接套公式做,因为分解质因数时,只分解一个数,所以可以不打素数表,只将n分解到√n就行了。
*/
#include<iostream>
#include<cstdio>
#define ll long long
#define N 1000010LL
using namespace std;
ll prime[N],c[N],P[N],f[N],num,n;
ll poww(ll a,ll b)
{
ll base=a,r=;
while(b)
{
if(b&)r*=base;
base*=base;
b/=;
}
return r;
}
int main()
{
freopen("phi.in","r",stdin);
freopen("phi.out","w",stdout);
cin>>n;
for(ll i=;i<=min(n,N-);i++)
{
if(!f[i])
{
prime[++num]=i;P[i]=num;
for(ll j=;i*j<=min(n,N-);j++)
f[i*j]=;
}
}
ll x=n;
for(ll i=;i<=num;i++)
{
ll p=prime[i];
while(x%p==)c[i]++,x/=p;
if(x<N)if(!f[x])
{
c[P[x]]++;break;
}
if(x==)break;
}
ll ans=;
for(ll i=;i<=num;i++)
if(c[i])ans*=(prime[i]-)*poww(prime[i],c[i]-);
if(x>N)ans*=(x-);
cout<<ans;
fclose(stdin);
fclose(stdout);
return ;
}

/*
φ(n)=φ(p1^k1+p2^k2……)=(p1-1)p1^k1-1+……=m
利用公式反推:从大到小枚举素数。
*/
#include<cstdio>
#include<iostream>
#include<ctime>
#include<cstdlib>
#include<algorithm>
#define N 10000010
#define ll long long
using namespace std;
bool f[N];ll n,k,prime[N/],num,ans[N/];
void gprime()
{
for(ll i=;i<=N-;i++)
{
if(!f[i])prime[++num]=i;
for(ll j=;j<=num;j++)
{
if(i*prime[j]>N-)break;
f[i*prime[j]]=;
if(i%prime[j]==)break;
}
}
}
ll gcd(ll a,ll b)
{
if(b==)return a;
return gcd(b,a%b);
}
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 poww(ll a,ll b,ll mod)
{
ll base=a,r=;
while(b)
{
if(b&)r=mul(r,base,mod);
base=mul(base,base,mod);
b>>=;
}
return r;
}
bool is_prime(ll x)//费马小定理判断素数
{
for(ll i=;i<=;i++)
{
ll y=rand()%(N-)+;
if(y<)y=y-y;
ll z=poww(y,x-,x);
if(z!=)return false;
}
return true;
}
void dfs(ll x,ll y,ll z)
{
if(x==)
{
ans[++ans[]]=y;return;
}
if(x+>prime[num]&&is_prime(x+))
ans[++ans[]]=y*(x+);
for(ll i=z;i>=;i--)
{
if(x%(prime[i]-)!=)continue;
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());
gprime();dfs(n,,num);
sort(ans+,ans+ans[]+);
for(ll i=;i<=k;i++)
cout<<ans[i]<<" ";
return ;
}

 

/*筛法求欧拉函数*/
#include<iostream>
#include<cstdio>
#define ll long long
#define N 10000010
using namespace std;
int n;
ll ans,f[N];
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;
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 ;
}
 

模拟赛1102d2的更多相关文章

  1. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  2. NOI模拟赛 Day1

    [考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...

  3. NOIP第7场模拟赛题解

    NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...

  4. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  5. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  6. 小奇模拟赛9.13 by hzwer

    2015年9月13日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿(explo) [题目背景] 小奇要开采一些矿物,它驾驶着一台带有钻头(初始能力值w)的飞船,按既定路线依次飞 ...

  7. PKUSC 模拟赛 day1 下午总结

    下午到了机房之后又困又饿,还要被强行摁着看英文题,简直差评 第一题是NOIP模拟赛的原题,随便模拟就好啦 本人模拟功力太渣不小心打错了个变量,居然调了40多分钟QAQ #include<cstd ...

  8. [GRYZ]寒假模拟赛

    写在前面 这是首次广饶一中的OIERS自编自导,自出自做(zuo)的模拟赛. 鉴于水平气压比较低,机(wei)智(suo)的WMY/XYD/HYXZC就上网FQ下海找了不少水(fei)题,经过他们优( ...

  9. BZOJ2741: 【FOTILE模拟赛】L

    2741: [FOTILE模拟赛]L Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 1170  Solved: 303[Submit][Status] ...

随机推荐

  1. debian8 配置使用 nfs

    操作过的步骤: 1.dpkg-reconfigre rpcbind. 2.在终端上退出要挂载的目录. 错误:mount -t nfs 172.16.0.121:/home/junda /mnt,出现以 ...

  2. java中堆栈(stack)和堆(heap)(还在问静态变量放哪里,局部变量放哪里,静态区在哪里.....进来)

    (1)内存分配的策略 按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的. 静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编 译时就可以给 ...

  3. Javascript高级程序设计——执行环境与作用域

    Javascript中执行环境是定义了变量或函数有权访问的其他数据,决定了各自的行为,每个执行的环境都有一个与之关联的变量对象,环境中定义的所以变量和函数都保存在这个对象中. 全局执行环境是最外围的一 ...

  4. C++中的单例模式(转)

    单例模式也称为单件模式.单子模式,可能是使用最广泛的设计模式.其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享.有很多地方需要这样的功能模块,如系统的日志输出,G ...

  5. HDU 5228

    #include<stdio.h> #include<string.h> *]; int main(){ int t; scanf("%d",&t) ...

  6. UIMenuController使用

    - (void)bubbleDidLongPress:(UILongPressGestureRecognizer *)gestureRecognizer { if(gestureRecognizer. ...

  7. Android学习笔记(九)——布局和控件的自定义

    //此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! View是 Android中一种最基本的 UI组件,它可以在屏幕上绘制一块矩形区域,并能响应这块区域的各种事件 ...

  8. python 循环语句的else语句用法,当循环条件变为假,切不是通过breakbreak终止的时候,就会执行这个else语句。

    循环语句可以有一个else子句:当(for)循环迭代完整个列表或(while)循环条件变为假,而非由break语句终止时,就会执行这个else语句.下面循环搜索质数的代码例示了这一点: >> ...

  9. GR32 TImage32的图层绘制原理

    转载:http://blog.sina.com.cn/s/blog_491aced20100ded4.html TImage32的继承顺序如下:TCustomControl->TCustomPa ...

  10. HDU 2222 ----AC自动机

    Problem Description In the modern time, Search engine came into the life of everybody like Google, B ...