可以看看吗?谢谢
查看原帖
可以看看吗?谢谢
1266584
companions楼主2024/8/24 17:50
#include <bits/stdc++.h>
using namespace std;
int n;
int u(int n) {
    if (n == 1) {
        return 1;
    }

    int primeCount = 0;
    int sqrtN = sqrt(n);
    for (int i = 2; i <= sqrtN; i++) {
        if (n % i == 0) {
            n /= i;
            if (n % i == 0) {
                return 0;
            }
            primeCount++;
        }
    }

    if (n > 1) {
        primeCount++;
    }

    return (primeCount % 2 == 0)? 1 : -1;
}
int f(int d){
	int k=d,s=0;
	for(;k<=n;k+=d){
		s+=(u(k/d)*(n/k)*(n/k-1)/2);
		
	}
	return s;
}
int main() {
	cin>>n;
	int s=0;
	for(int i=1;i<=n;i++){
		s+=(i*f(i));
		cout<<"f"<<"\t"<<f(i)<<"\n";
	}
	cout<<s;
	return 0;
}

谢谢。

2024/8/24 17:50
加载中...