您的位置:首页
UVA 294 294 - Divisors (数论)
2017-06-16 09:05
417 查看
UVA 294 - Divisors
题目链接题意:求一个区间内,因子最多的数字。
思路:因为区间保证最多1W个数字,因子能够遍历区间。然后利用事先筛出的素数求出质因子,之后因子个数为全部(质因子的个数+1)的积
代码:
#include <stdio.h> #include <string.h> #include <algorithm> using namespace std; const int N = 35005; int prime , pn = 0, vis ; int t, a, b; int cal(int num) { int ans = 1; for (int i = 0; i < pn && prime[i] <= num; i++) { if (num % prime[i]) continue; int count = 1; while (num % prime[i] == 0) { count++; num /= prime[i]; } ans *= count; } return ans; } void solve() { int ans, Max = 0; for (int i = a; i <= b; i++) { if (Max < cal(i)) { ans = i; Max = cal(i); } } printf("Between %d and %d, %d has a maximum of %d divisors.\n", a, b, ans, Max); } int main() { for (int i = 2; i < N; i++) { if (vis[i]) continue; prime[pn++] = i; for (int j = i; j < N; j += i) vis[j] = 1; } scanf("%d", &t); while (t--) { scanf("%d%d", &a, &b); solve(); } return 0; }
相关文章推荐
- UVA 294 294 - Divisors (数论)
- UVa 294 - Divisors
- UVa 294 (因数的个数) Divisors
- Uva 294 Divisors(唯一分解定理)
- UVA 294 - Divisors 因子个数
- UVa 294 Divisors
- UVA 294(p344)----Divisors
- UVa 294 - Divisors
- Divisors UVA - 294
- uva294 Divisors
- UVA294 UVALive5595 Divisors【正因子数】
- UVa294 Divisors
- UVA 294 Divisors( 因子分解)
- uva 294 divisors
- UVA 294 Divisors
- UVa294 - Divisors
- UVa 294 - Divisors
- UVA294 - Divisors
- UVA 294 Divisors(唯一分解定理 + 除数函数)
- UVa 294 - Divisors(唯一分解)