HELP! HELP!
查看原帖
HELP! HELP!
221551
Bker_楼主2022/7/26 18:02
#include <iostream>
#include <cmath>
using namespace std;
typedef long long ll ;

ll n , ans , cnt  ;
ll d  ;

ll eluer(ll x){
	ll res = x , now = 2;
	while(x > 1){
		if(x % now == 0){
			res /= now ; 
			res *= (now - 1);
			while(x % now == 0)	x /= now ;
		}
		now++ ;
	}
	return res ;
}

 ll read()
{
	ll x=0;
	bool flag=1;
	char c=getchar();
	while(c<'0'||c>'9')
	{
		if(c=='-')
			flag=0;
		c=getchar();
	}
	while(c>='0'&&c<='9')
	{
		x=(x<<1)+(x<<3)+c-'0';
		c=getchar();
	}
	return (flag?x:~(x-1));
}
int main(){
	
	n = read();
	for(ll i = 1 ; i <= sqrt(n) ; i++){
		if(n % i == 0){
			d = i ;
			ans += d * eluer(n / d) ;
			if(d * d != n){
				d = n / d ;
				ans += d * eluer(n / d) ;
			}		
		} 
	}
	cout<<ans ;
	return 0 ;

}

为什么第五 六个点TLE 了(雾)

2022/7/26 18:02
加载中...