标签:
http://lightoj.com/volume_showproblem.php?problem=1236
#include<stdio.h> #include<math.h> #include<string.h> #include<stdlib.h> #include<algorithm> using namespace std; const int N = 1e7 + 10; typedef long long ll; int prime[700010], k; bool Isprime[N]; void Prime() { k = 0; memset(Isprime, true, sizeof(Isprime)); Isprime[1] = false; for(int i = 2 ; i < N ; i++) { if(Isprime[i]) { prime[k++] = i; for(int j = 2 ; i * j < N ;j++) Isprime[i * j] = false; } } }//素数筛选 int main() { int t, p = 0; ll n; Prime(); scanf("%d", &t); while(t--) { p++; int x; ll ans = 1; scanf("%lld", &n); for(int i = 0 ; i < k && prime[i] * prime[i] <= n; i++) { x = 0; if(n % prime[i] == 0) { while(n % prime[i] == 0) { x++; n /= prime[i]; } } ans *= (2 * x + 1); } if(n > 1) ans *= 3; printf("Case %d: %lld\n", p, ans / 2 + 1); } return 0; }
LightOJ 1236 Pairs Forming LCM (LCM 唯一分解定理 + 素数筛选)
标签:
原文地址:http://www.cnblogs.com/qq2424260747/p/4936943.html