11.2 afternoon
#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的更多相关文章
- 11.3 afternoon
迭代40 #include<cstdio> #include<cstring> using namespace std; int n,sum,falg; ],c[]; void ...
- 11.1 afternoon
幸运数字(number)Time Limit:1000ms Memory Limit:64MB题目描述LYK 最近运气很差,例如在 NOIP 初赛中仅仅考了 90 分,刚刚卡进复赛,于是它决定使用一些 ...
- 地区sql
/*Navicat MySQL Data Transfer Source Server : localhostSource Server Version : 50136Source Host : lo ...
- 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 ...
- 清北学堂—2020.1提高储备营—Day 2 afternoon(线段树、树状数组)
qbxt Day 2 afternoon --2020.1.18 济南 主讲:李佳实 目录一览 1.线段树 2.二叉搜索树(略过) 3.树状数组 总知识点:基础数据结构(本人初学感觉好难) 一.线段树 ...
- WinForm 天猫2013双11自动抢红包【源码下载】
1. 正确获取红包流程 2. 软件介绍 2.1 效果图: 2.2 功能介绍 2.2.1 账号登录 页面开始时,会载入这个网站:https://login.taobao.com/member/login ...
- C++11特性——变量部分(using类型别名、constexpr常量表达式、auto类型推断、nullptr空指针等)
#include <iostream> using namespace std; int main() { using cullptr = const unsigned long long ...
- CSS垂直居中的11种实现方式
今天是邓呆呆球衣退役的日子,在这个颇具纪念意义的日子里我写下自己的第一篇博客,还望前辈们多多提携,多多指教! 接下来,就进入正文,来说说关于垂直居中的事.(以下这11种垂直居中的实现方式均为笔者在日常 ...
- C++ 11 多线程--线程管理
说到多线程编程,那么就不得不提并行和并发,多线程是实现并发(并行)的一种手段.并行是指两个或多个独立的操作同时进行.注意这里是同时进行,区别于并发,在一个时间段内执行多个操作.在单核时代,多个线程是并 ...
随机推荐
- Linux内核监控模块-3-系统调用的截获
上一章,我们获取了系统调用表的地址,这里我们来搞点所谓“截获”的事情.所谓“截获”即是将系统调用表里的地址指向我们自己写的一个函数,系统调用先执行我们自己写的函数,处理完后,再返回原来系统调用的执行函 ...
- 区分html与css中的属性
CSS中id与Class的区别 1.在CSS文件里书写时,ID加前缀"#":CLASS用"." 2.id一个页面只可以使用一次:class可以多次引用. 3.I ...
- C#反射(一) 【转】
在还不太熟悉反射的昨天,以为反射很神秘,在网上到处找答案.今天找了段代码敲了一下,茅塞顿开!其实反射也就那么简单的一回事! 反射是一种机制,通过这种机制我们可以知道一个未知类型的类型信息.比如, ...
- python学习随笔
1 高阶函数的使用: import math def add(x, y, f): return f(x) + f(y) sq = math.sqrt print add(25, 9,sq) 2. ma ...
- 2016年 IT 趋势大预测!
新年伊始,有不少人在总结过去,也有一些人在展望未来.下面让我们跟随 OpsClarity 的 Dhruv Jain,看看他对 2016 IT 趋势有什么大胆的预测. 又到了众人纷纷对下一年进行预测的时 ...
- Spring MVC 解读——<mvc:annotation-driven/>(转)
转自:http://my.oschina.net/HeliosFly/blog/205343 Spring MVC 解读——<mvc:annotation-driven/> 一.Annot ...
- Apache 整合 Tomcat (首先Apache 发布的是PHP项目,占用端口80,tomcat 发布的是Java 项目,占用端口8080)
情况简介: Apache 整合 Tomcat (首先Apache 发布的是PHP项目,占用端口80,tomcat 发布的是Java 项目,占用端口8080),而现在是虚拟出来两个域名(希望这两个域名都 ...
- 计算机视觉code与软件
Research Code A rational methodology for lossy compression - REWIC is a software-based implementatio ...
- ANT的下载和安装
下载 下载页面:http://ant.apache.org/bindownload.cgi 安装 撰写本文的时候,最新的ANT版本是1.9.7,它是绿色软件,解压缩得到apache-ant-1.9.7 ...
- rnqoj-73-展演队型-dp
纯属于敢想就敢做的题目,列出来状态转移就OK了 #include<stdio.h> #include<string.h> #include<iostream> #i ...