UESTC1724 为了我们心爱的京电(欧拉函数)

为了我们心爱的京电

Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)
 

京州电子科技大学遭遇废校危机,为了保护我们心爱的学校,N位魔法少女站了出来,她们能做的就是……成为偶像! 每个魔法少女都拥有一定的人气,他们中的每个人的人气计算方式如下: 假设某个魔法少女的学号为a,学号从1到a-1的共a-1位同学都会为她应援,学号为i的同学能让这位魔法少女增加gcd(a,i)的人气值。 这N位魔法少女最终能否拯救我们的学校呢,试着计算一下他们的总人气值吧! title

Input

第一行有一个数字N,表示魔法少女的个数 第二行共有N个数字,分别是a[i],表示第i为魔法少女的学号 其中1<=N<=1e4, 1<=a[i]<=1e6

Output

输出一个数,N位魔法少女的总人气值

Sample input and output

Sample Input Sample Output
2
5 6
13
思路:题目要求小于a[i]的数与a[i]gcd的和,那么我们分析一下,对于一个数n,1到n的gcd(n,i)的和,我们假设gcd(n,i)=k,那么gcd(n/k,i/k)=1,然后我们将i/k即为x,即gcd(n/k,x)=1,又因为gcd(n,i)=k,k的数量是确定的,k即为n所有约数的个数,所以在对于gcd(n/k,x)=1,来说有几个x那么就代表有几个i与n的gcd值为k,对于gcd(n/k,x)=1来说,x的个数就是n/k的欧拉函数值,那么最后我们就能转化为n/k的欧拉函数值乘以k的所有和了
举例来说对于12,12因子有1,2,3,4,6,12,φ(12/1)*1+φ(12/2)*2+φ(12/3)*3+φ(12/4)*4+φ(12/6)*6+φ(12/12)*12,也能写为这种形式Σphi(d)*a[i]/d,d为a[i]的约数,两者是一样的我们只要枚举a[i]的约数就好啦
#include <iostream>
#include <cstdio>
#include <cstring>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <math.h>
using namespace std;
inline long long phi(long long x){
    long long a=x;
    long long m=sqrt(x+0.5);
    for(long long i=2;i<=m;i++){
        if(x%i==0){
            a=a/i*(i-1);
            while(x%i==0)x/=i;
        }
    }
    if(x>1)a=a/x*(x-1);
    return a;
}
int main(){
    long long t;
    while(~scanf("%lld",&t)){
        long long ans=0;
        for(int j=0;j<t;j++)
        {
            long long n;
            scanf("%lld",&n);
        long long m;
        m=floor(sqrt(1.0*n));
        long long i;
        for(i=1;i<=m;++i){
            if(n%i==0){
                ans+=(long long)phi(n/i)*i;
                if(i*i<n)ans+=(long long)(n/i)*phi(i);
            }
        }
        ans-=n;
        }
        printf("%lld\n",ans);
    }
    return 0;
}


1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可 6私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值