codeforces 546D (数学 水)
来源:互联网 发布:淘宝怎么查看旺旺号 编辑:程序博客网 时间:2024/06/07 06:47
题目链接:点击这里
题意:给出一个数字,每次用他除以一个因子。问最多可以除几次。
一个数字要能够除最多的数显然每次都除以一个素因子。所以直接一边线性筛找出每一个数的最小质因子,然后像DP一遍统计每素因子数的前缀和就行了。
#include <bits/stdc++.h>using namespace std;#define maxn 5000005bool vis[maxn];int prime[maxn], cnt;long long num[maxn], sum[maxn];int n, a, b;void init () { cnt = 0; memset (vis, 0, sizeof vis); for (int i = 2; i < maxn; i++) { if (!vis[i]) { prime[cnt++] = i; num[i] = i; } for (int j = 0; j < cnt; j++) { if (1LL*i*prime[j] >= maxn) break; vis[i*prime[j]] = 1; num[i*prime[j]] = prime[j]; if (i%prime[j] == 0) { break; } } } sum[0] = sum[1] = 0; for (int i = 2; i < maxn; i++) sum[i] = 1+sum[i/num[i]]; for (int i = 1; i < maxn; i++) sum[i] += sum[i-1];}int main () { init (); scanf ("%d", &n); while (n--) { scanf ("%d%d", &a, &b); printf ("%lld\n", sum[a]-sum[b]); } return 0;}
0 0
- codeforces 546D (数学 水)
- Codeforces 785D 数学
- CodeForces 66D 数学构造
- codeforces 735 D. Taxes (数学)
- codeforces - 276D【贪心+数学】
- Codeforces-785D (组合数学)
- Codeforces 509D. Restoring Numbers 构造+数学
- codeforces 30D King's Problem? 数学
- Codeforces 615D Multipliers 【组合数学】
- CodeForces - 630D Hexagons! (数学规律)
- Codeforces 658D Bear and Polynomials【数学】
- Codeforces 615D Multipliers(数学推公式)
- Codeforces 584D Dima and Lisa 【数学】
- Educational Codeforces Round 15 D 数学推导
- Codeforces 633D Fibonacci-ish 数学+暴力
- codeforces 735 D Taxes(数学)
- codeforces - 735D -Taxes(数学)
- Longest Subsequence codeforces 632D 暴力数学
- C++ Socket编程实例解析
- 老板说做SEO只是发外链写软文的,怎么破?
- calamari图片记录
- 类的简述
- 【转】JSON.stringify 语法实例讲解
- codeforces 546D (数学 水)
- #ifdef DEBUG的理解
- 单删,批删,全选,反选
- 微软公司内部培训程序员资料---求解线性方程组的类
- 常用软件的下载
- Java Http网络请求HttpURLConnection应用之【Android网络请求框架底层剖析】
- fastdfs 上传大小限制调整
- 程序员创造了世界,世界欠程序员一个1024。
- systemctl start mesos-slave problem