• [SDOI2008]仪仗队 (欧拉函数)


    题目描述

    作为体育委员,C君负责这次运动会仪仗队的训练。仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图)。现在,C君希望你告诉他队伍整齐时能看到的学生人数。

      

    输入输出格式

    输入格式:

    共一个数N

    输出格式: 

    共一个数,即C君应看到的学生人数。

    输入输出样例

    输入样例#1: 
    4
    输出样例#1: 
    9

    说明

    【数据规模和约定】

    对于 100% 的数据,1 ≤ N ≤ 40000

    代码

    #include<bits/stdc++.h>
    using namespace std;
    int ola(int n)
    {
        int ans=0,i,k;
        if(n==1)
        ans=1;
        else
        {
            ans=n;
            k=1;
            for(i=2;n!=1;i+=k)
            {
                if(n%i==0)
                {
                    ans/=i;
                    ans*=(i-1);
                    while(n%i==0) n/=i;
                    i=k;
                }
            }
        }
        return ans;
    }
    int ans,n;
    int main()
    {
        scanf("%d",&n);
        if(n==1) {cout<<0<<endl;return 0;}
        for(int i=3;i<=n;++i)
        ans+=ola(i-1);
        cout<<ans+3<<endl;
        return 0;
    }
  • 相关阅读:
    UVA
    hdu 5584 LCM Walk
    UVA 10791 -唯一分解定理的应用
    UVA-10375 唯一分解定理
    UVA-11582
    UVA
    大连CCPC D
    java切割~~百万 十万 万 千 百 十 个 角 分
    js文字颜色闪烁
    日期比较大小给小的月份加1
  • 原文地址:https://www.cnblogs.com/Kv-Stalin/p/9033445.html
Copyright © 2020-2023  润新知