关于数学赛第二题
查看原帖
关于数学赛第二题
482610
Mortidesperatslav楼主2024/4/5 20:01

不是对于数 kk,做一行除法表需要 dalog⁡2da×φ(k)d_a\log _2{d_a} \times \varphi(k) 法力吗?

为什么这个代码不对?

#include<bits/stdc++.h>
using namespace std;
double log(double b, double n){
	return log2(n) / log2(b);
}
double d(double a){
	return floor(log(10, a) + 1.0);
}
double ml(double a){
	return d(a) * 1.0 * log2(d(a));
}
double ans;
bool vis[20000005], prime[20000005];
long long varphi[20000005];
int n;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cin >> n;
	for (int i = 1; i <= n; i++)
		varphi[i] = i;
	for (int i = 2; i <= n; i++){
		if (vis[i] == 1)
			continue;
		prime[i] = 1;
		for (register int j = i; j <= n; j += i){
			vis[j] = 1;
			varphi[j] = (varphi[j] / i) * (i - 1);
		}
	}
	for (int i = 1; i <= n; i++){
		ans += varphi[i] * ml(i);
		ans += d(i) * i;
	//	cout << varphi[i] << " " << ml(i) << " " << d(i) << " " << i << "\n";
	}
	cout << ans;
}
2024/4/5 20:01
加载中...