题目链接:uva 11440 - Help
Tomisu

题目大意:给定n和m,求从2~n。中的数x。要求x的质因子均大于m。问说x有多少个。答案模上1e9+7。

解题思路:

(1)n!=k∗m!(n≥m)

(2)
假设有gcd(x,T)=1,那么gcd(x+T,T)=gcd(x,T)=1

题目要求说x的质因子必需要大于m,也就是说x不能包括2~m的因子,那么gcd(x,m!)=1,于是我们求出ϕ(m!),小于m!

而且满足gcd(x,m!)=1的个数。

那么依据(2)可得从[m!+1, 2*m!]中的x个数也是ϕ(m!)个。由于假设存在gcd(x,T)=a,那么gcd(x+T,T)=gcd(x,T)=a.

又由于(1),所以最后n!以内的x个数为:n!∗ϕ(m!)m!

#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm> using namespace std;
typedef long long ll;
const int maxn = 1e7;
const ll MOD = 100000007; int np, pri[maxn+5], vis[maxn+5];
ll fact[maxn+5], phi[maxn+5]; void prime_table (ll n) {
np = 0;
for (ll i = 2; i <= n; i++) {
if (vis[i])
continue; pri[np++] = i;
for (ll j = i * i; j <= n; j += i)
vis[j] = 1;
}
} void gcd (ll a, ll b, ll& d, ll& x, ll& y) {
if (b == 0) {
d = a;
x = 1;
y = 0;
} else {
gcd(b, a%b, d, y, x);
y -= (a/b) * x;
}
} inline ll inv_number (ll a, ll n) {
ll d, x, y;
gcd(a, n, d, x, y);
return (x + n) % n;
} void init (ll n) {
fact[1] = phi[1] = 1;
for (ll i = 2; i <= n; i++) {
fact[i] = (fact[i-1] * i) % MOD;
phi[i] = phi[i-1]; if (vis[i] == 0) {
phi[i] *= ((i-1) * inv_number(i, MOD)) % MOD;
phi[i] %= MOD;
}
}
} ll solve (int n, int m) {
ll ans = fact[n] * phi[m] % MOD;
return (ans - 1 + MOD) % MOD;
} int main () {
prime_table(maxn);
init (maxn); int n, m;
while (scanf("%d%d", &n, &m) == 2 && n + m) {
printf("%lld\n", solve(n, m));
}
return 0;
}

版权声明:本文博主原创文章。博客,未经同意不得转载。

uva 11440 - Help Tomisu(欧拉功能)的更多相关文章

  1. Help Tomisu UVA - 11440 难推导+欧拉函数,给定正整数N和M, 统计2和N!之间有多少个整数x满足,x的所有素因子都大于M (2<=N<=1e7, 1<=M<=N, N-M<=1E5) 输出答案除以1e8+7的余数。

    /** 题目:Help Tomisu UVA - 11440 链接:https://vjudge.net/problem/UVA-11440 题意:给定正整数N和M, 统计2和N!之间有多少个整数x满 ...

  2. UVa 11440 Help Tomisu (数论欧拉函数)

    题意:给一个 n,m,统计 2 和 n!之间有多少个整数x,使得x的所有素因子都大于M. 析:首先我们能知道的是 所有素数因子都大于 m 造价于 和m!互质,然后能得到 gcd(k mod m!, m ...

  3. uva 10837 - A Research Problem(欧拉功能+暴力)

    题目链接:uva 10837 - A Research Problem 题目大意:给定一个phin.要求一个最小的n.欧拉函数n等于phin 解题思路:欧拉函数性质有,p为素数的话有phip=p−1; ...

  4. UVA 10441 - Catenyms(欧拉道路)

    UVA 10441 - Catenyms 题目链接 题意:给定一些单词,求拼接起来,字典序最小的,注意这里的字典序为一个个单词比过去,并非一个个字母 思路:欧拉回路.利用并查集判联通,然后欧拉道路判定 ...

  5. UVA 10129-Play on Words(欧拉通路)

    题意:给N个单词,判断是否单词首尾(前一个单词的尾字符与后一个单词的头字符相同)相连能否形成一条链. 解析:找欧拉通路(欧拉回路或是欧拉链路),但这题事先需要并查集一下,判断是否只属于一个集合,如aa ...

  6. 【日常学习】【欧拉功能】codevs2296 荣誉的解决方案卫队的一个问题

    转载请注明出处 [ametake版权全部]http://blog.csdn.net/ametake欢迎来看看 题目来源:SDOI2008 文章被剽窃非常严重啊 所以以后都带上版权信息 先上题目 题目描 ...

  7. hdu1286 寻找新朋友 (欧拉功能)

    原标题:点击打开链接 关于欧拉函数的算法具体解说:点击打开链接 欧拉函数 1.欧拉函数是不全然积性函数. 2.欧拉函数p(x) = x * (p1 - 1) / p1 * (p2 - 1)/p2 * ...

  8. UVa 11440 - Help Tomisu(欧拉函数 + 问题转换)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  9. UVa 10129 单词 (欧拉通路)

    题意: 输入n(n≤100000)个单词,是否可以把所有这些单词排成一个序列,使得每个单词的第一个字母和上一个单词的最后一个字母相同(例如acm.malform.mouse).每个单词最 多包含100 ...

随机推荐

  1. Centos6.5最小化安装:配置网络和自启动服务

    参考http://www.111cn.net/sys/CentOS/56456.htm 1.开启网络连接,禁止IPV6启用 1.开启网络连接 vi  /etc/sysconfig/network-sc ...

  2. Linux下安装gcc 、g++ 、gfortran编译器

    一.ubuntu下gcc/g++/gfortran的安装 1.安装 (1).gcc ubuntu下自带gcc编译器.可以通过“gcc -v”命令来查看是否安装. (2).g++ 安装g++编译器,可以 ...

  3. JQuery 字符串截取

    //字符串截取,全小写 strObj.substring(startIndex,endIndex); //需要注意大小写 strObj.lastIndexOf(String splitObj); // ...

  4. jsp表单提交中文乱码的解决

    <%@ page language="Java" contentType="text/html; charset=utf-8 "    pageEncod ...

  5. 使用URLClassLoader类载入类实例

    Tomcat当中在接受到要调用的Servlet请求后,需要载入相应的Servlet类,然后创建Servlet类实例,从而调用Servlet类实例的service()方法 下面实例的场景,request ...

  6. MVC描述对象的类关系图/调用关系图【学习笔记】

  7. www.nygwkt.com

    南京宁阳制冷设备维修有限公司是专业从事厨房空调,http://www.nygwkt.com岗位空调制冷设备设计.制造.安装.改造.维修.保养的专业化公司.在南京享有很高的客户评论. 我们对南京宁阳制冷 ...

  8. iPhone手机VPN设置

    如果iPhone,iPad游戏或软件服务器在国外不能用,就需要设置VPN了. 如果是为了解除公司上网策略限制,或者为了上Google,Facebook,都可以通过设置VPN实现. 要使用VPN需要到V ...

  9. JavaService wrapper

    http://my.oschina.net/yjwxh/blog/260835 http://blog.chinaunix.net/uid-664509-id-3398193.html http:// ...

  10. #ifdef __cplusplus extern c #endif 的作用

    #ifdef __cplusplus // C++编译环境中才会定义__cplusplus (plus就是"+"的意思) extern "C" { // 告诉编 ...