zoukankan      html  css  js  c++  java
  • ZZUOJ 10507: 非完美数

    题目链接http://acm.zzu.edu.cn:8000/problem.php?id=10507

    题目大意:求L到R区间内所有数与小于它自己的约数的差的绝对值的和。

    解题思路:拿个筛子筛一筛。注意1的时候还是1以及long long

    代码:

    const int maxn = 1e6 + 5;
    typedef long long ll;
    int l, r;
    ll a[maxn], sum[maxn];
     
    void dowork(){
        memset(a, 0, sizeof(a));
        for(int i = 1; i < maxn; i++) a[i] = i - 1;
        a[1] = 1; 
        for(int i = 2; i <= 1e6 / 2; i++){
            for(int j = i * 2; j <= 1e6; j += i){
                a[j] -= i;
            }
        }
        memset(sum, 0, sizeof(sum));
        for(int i = 1; i < maxn; i++){
            sum[i] = sum[i - 1] + abs(a[i]);
        }
    }
    int main(){
        dowork();
        scanf("%d %d", &l, &r);
        ll ans = sum[r] - sum[l - 1];
        printf("%lld
    ", ans);
    }

    题目:

    Problem A: 非完美数

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 99  Solved: 12
    [Submit][Status][Web Board]

    Description

    Raywzy定义一个数x是完美的,当且仅当x等于他的所有约数(比x小)之和。比如,6是完美的的(6=1+2+3).
    根据这个定义,Raywzy假设一个数x的不完美度为x与所有约数(比x小)差的绝对值.显然完美数的不完美度是0.f(6)=|6-1-2-3|=0.
    现在给定一个区间[L,R],Raywzy想知道L到R的不完美度之和.你能帮帮他么?

    Input

    两个数L,R表示这个区间.(1<=L<=R<=10^6).

    Output

    这个区间所有数不完美度之和.

    Sample Input

    2 3

    Sample Output

    3
  • 相关阅读:
    C++多态性的总结
    php 基于curl 实现,模拟多线程任务
    php 解决跨域问题
    vue-cli 使用步骤
    php 图片转成base64 前后台示例
    jq 实现选项卡效果
    javascript仿es6的map类
    PHP生成word并可下载
    vue 实现的树形菜单
    vue之路由的基本用法
  • 原文地址:https://www.cnblogs.com/bolderic/p/7497170.html
Copyright © 2011-2022 走看看