POJ3090 给定一个坐标系范围 求不同的整数方向个数

分析: 除了三个特殊方向(y轴方向 x轴方向 (1,1)方向)其他方向的最小向量表示(x,y)必然互质

所以对欧拉函数前N项求和 乘2(关于(1,1)对称)再+3就是答案

给出代码

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long int LL;
LL getPrime(bool notprime[],LL prime[],LL N)
{
LL tot=0;
for(LL i=2;i<=N;i++)
{
if(!notprime[i]) prime[tot++]=i;
for(LL j=0;j<tot;j++)
{
if(prime[j]*i>N)break;
notprime[prime[j]*i]=true;
if(i%prime[j]==0)break;
}
}
return tot;
}
LL pow_mod(LL n,LL k,LL p)
{
if(k==0)return 1;
LL w=1;
if(k&1)w=n%p;
LL ans=pow_mod(n*n%p,k>>1,p);
return ans*w%p;
}
bool Miller_Rabin(LL n,LL a,LL d)
{
if(n==2)return true;
if(n==a)return true;
if(n%a==0)return false;
if((n&1)==0)return false;
while(!(d&1))d=d>>1;
LL t=pow_mod(a,d,n);
if(t==1)return true;//特别注意!!
while((d!=n-1)&&(t!=1)&&(t!=n-1))
{
t=(LL)t*t%n;
d=d<<1; } return (t==n-1||(d&1)==1);
}
bool isPrime(LL n,LL times)
{
if(n<2)return false;
LL a[4]={2,3,5,7};
for(LL i=0;i<4;i++){if(!Miller_Rabin(n,a[i],n-1))return false;}
return true;
}
void Factor(LL n,LL a[],LL b[],LL &tot)
{
LL temp,i,now;
temp=(LL)((double)sqrt(n)+1);
tot=0;
now=n;
for(i=2;i<=temp;i++)
if(now%i==0)
{
a[tot]=i;
b[tot]=0;
while(now%i==0)
{
b[tot]++;
now/=i;
}
tot++;
}
if(now!=1)
{
a[tot]=now;
b[tot++]=1;
}
}
LL digitsum(LL n)
{
LL ans=0;
for(LL i=0;;i++)
{
LL div=pow(10,i);
if((n/div)==0)return ans;
ans+=(n%(div*10))/div;
}
}
void getPhi(LL mindiv[],LL phi[],LL max)
{
max=max+1;
for(LL i=1;i<max;i++)
mindiv[i]=i;
for(LL i=2;i<(LL)(sqrt(max)+1);i++)
{
if(mindiv[i]==i)
{
for(LL j=i*i;j<max;j+=i)
mindiv[j]=i;
}
}
memset(phi,0,sizeof(phi));
phi[1]=1;
for(LL i=2;i<max;++i)
{
phi[i]=phi[i/mindiv[i]];
if(((i/mindiv[i])%mindiv[i])==0)phi[i]*=mindiv[i];
else phi[i]*=mindiv[i]-1;
}
}
void getMobius(LL mu[],LL max)
{
for(LL i=1;i<=max;i++)
{
LL target=i==1?1:0;
LL delta=target-mu[i];
mu[i]=delta;
for(LL j=i+i;j<=max;j+=i)
mu[j]+=delta;
}
}
LL mindiv[1001],phi[1001];
int main()
{
//freopen("t.txt","r",stdin);
//freopen("1.txt","w",stdout);
getPhi(mindiv,phi,1000);
LL sum[1001];
sum[1]=0;
sum[2]=1;
for(int i=3;i<=1000;i++)
sum[i]=sum[i-1]+phi[i];
int np;
scanf("%d",&np);
for(int i=1;i<=np;i++)
{
int now;
scanf("%d",&now);
LL ans=sum[now]*2+3;
printf("%d %d %lld\n",i,now,ans);
}
return 0;
}

  

POJ3090 巧用欧拉函数 phi(x)的更多相关文章

  1. 求一个极大数的欧拉函数 phi(i)

    思路: 因为当n>=1e10的时候,线性筛就不好使啦.所以要用一个公式 φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn) 证明详见:<公式 ...

  2. hdu 5279 Reflect phi 欧拉函数

    Reflect Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://bestcoder.hdu.edu.cn/contests/contest_chi ...

  3. 容斥原理、欧拉函数、phi

    容斥原理: 直接摘用百度词条: 也可表示为 设S为有限集, ,则 两个集合的容斥关系公式:A∪B = A+B - A∩B (∩:重合的部分) 三个集合的容斥关系公式:A∪B∪C = A+B+C - A ...

  4. POJ 2480 (约数+欧拉函数)

    题目链接: http://poj.org/problem?id=2480 题目大意:求Σgcd(i,n). 解题思路: 如果i与n互质,gcd(i,n)=1,且总和=欧拉函数phi(n). 如果i与n ...

  5. 数论 - 欧拉函数模板题 --- poj 2407 : Relatives

    Relatives Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11372   Accepted: 5544 Descri ...

  6. 欧拉函数 cojs 2181. 打表

    cojs 2181. 打表 ★☆   输入文件:sendtable.in   输出文件:sendtable.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] 有一道比赛题 ...

  7. hdu 3501 Calculation 2 (欧拉函数)

    题目 题意:求小于n并且 和n不互质的数的总和. 思路:求小于n并且与n互质的数的和为:n*phi[n]/2 . 若a和n互质,n-a必定也和n互质(a<n).也就是说num必定为偶数.其中互质 ...

  8. NOIP模拟:切蛋糕(数学欧拉函数)

    题目描述  BG 有一块细长的蛋糕,长度为 n. 有一些人要来 BG 家里吃蛋糕, BG 把蛋糕切成了若干块(整数长度),然后分给这些人. 为了公平,每个人得到的蛋糕长度和必须相等,且必须是连续的一段 ...

  9. 【省选十连测之九】【DP】【组合计数去重】【欧拉函数】基本题

    目录 题意: 输入格式: 输出格式: 数据范围: 思路: 嵌套题的转移 基本题的转移 Part1 Part2 Part3 代码 题意: 这是一个关于括号组合的题. 首先定义一道题是由'(',')',' ...

随机推荐

  1. JavaScipt30(第八个案例)(主要知识点:canvas)

    承接上文,这是第8个案例,要实现的效果是按住鼠标不放,进行拖动时可以在画布上画出不同粗细不同颜色的曲线. 附上项目链接: https://github.com/wesbos/JavaScript30 ...

  2. 12Oracle Database SQL程序

    Oracle Databse SQL 程序 程序块 在这之前,我们所有的sql语句都是一句一句执行的,如果我们把很多事情看作一个整体提交执行的话,必须使用程序块. 声明部分:声名变量及初始化 关键字: ...

  3. 王垠:写给支持和反对《完全用Linux工作》的人们

    王垠:写给支持和反对<完全用Linux工作>的人们 在一阵阵唾骂和欢呼声中,<完全用linux工作>被转载到了天涯海角.很多人支持我,也有很多人唾骂我.我不知道它是怎样流传到那 ...

  4. TWaver GIS在电信中的使用

    GIS作为信息系统的重要组成部分,在电信行业中的应用由来已久.将GIS引入电信管理系统,GIS强大的功能就会得到充分的体现,GIS技术可以将各类电信信息系统以其特有的表现形有机整合在一起,并为真正做到 ...

  5. 11servlet接口

    11.servlet接口-2018/07/23 1.servlet 是一个接口,需要导包javax.servlet.Servlet; 第一种编写一个servlet程序的方法 写一个Java类,实现se ...

  6. js的title提示

    $(function() { //先在页面创建一个层 var jqtip = $("<div id='jqtip20130719'" + "style='paddi ...

  7. Sublime Text 3 快捷键(转载)

    本文转自:https://segmentfault.com/a/1190000002570753 (欢迎阅读原文,侵删) Sublime Text 3 快捷键精华版 Ctrl+Shift+P:打开命令 ...

  8. 【Codeforces 466B】Wonder Room

    [链接] 我是链接,点我呀:) [题意] 让你把长为a,宽为b的房间扩大(长和宽都能扩大). 使得它的面积达到6*n 问你最小的能满足要求的面积是多少 输出对应的a和b [题解] 假设a< b ...

  9. MongoDB怎么快速的删除数据库数据?

    我的mongodb里有10+数据库.现在需要重置这个环境,得到干净的没有数据的MongoDB.怎么快速安全的删除这些数据库数据呢? 记得首先备份你的数据库mongodump -o bakfolder ...

  10. 武大OJ 613. Count in Sama’s triangle

    Description Today, the math teacher taught Alice Hui Yang’s triangle. However, the teacher came up w ...