zoukankan      html  css  js  c++  java
  • 开心的小Q 51Nod

    开心的小Q

     51Nod - 1742 

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 #define ll long long 
     4 const ll maxn = 1e5+10;
     5 ll mu[maxn], pri[maxn];
     6 ll cnt;
     7 
     8 void init(){
     9     memset(pri, 0, sizeof(pri));
    10     cnt = 0;
    11     mu[1] = 1;
    12     for(ll i = 2; i < maxn; i++){
    13         if(!pri[i]) {
    14             pri[cnt++] = i;
    15             mu[i] = -1;
    16         }
    17         for(ll j = 0; j < cnt; j++){
    18             ll t = pri[j] * i;
    19             if(t > maxn) break;
    20             pri[t] = 1;
    21             if(i % pri[j] == 0){
    22                 mu[t] = 0;
    23                 break;
    24             } else {
    25                 mu[t] = -mu[i];
    26             }
    27         }
    28     }
    29 }
    30 ll F(ll n){
    31     ll ans = n;
    32     for(ll i = 1; i*i <= n; i++){
    33         ans -= mu[i]*(n/(i*i));
    34     }
    35     return ans;
    36 }
    37 ll solve(ll a) {
    38     ll ans = 0;
    39     ll L = 1, R = 1;
    40     while(L <= a) {
    41         ans += (R-L+1)*F(a/L);
    42         if(R >= a) break;
    43         L = R+1;
    44         R = a/(a/L);
    45     }
    46     return ans;
    47 }
    48 
    49 int main(){
    50     ll a,b;
    51     init();
    52     while(scanf("%lld %lld", &a, &b) != EOF){
    53         printf("%lld
    ", solve(b) - solve(a-1));
    54     }
    55 }
    View Code
  • 相关阅读:
    杂项
    hdu 2094
    hdu acm 1004
    android 重装sdk或者系统的时模拟器出现can open ****
    使用Java模拟操作系统高优先级算法
    各种语法解释及用法
    枚举与结构
    闭包
    socket
    异常
  • 原文地址:https://www.cnblogs.com/yijiull/p/7630360.html
Copyright © 2011-2022 走看看