結果

問題 No.1514 Squared Matching
ユーザー vjudge1
提出日時 2025-07-07 11:14:47
言語 C++23
(gcc 13.3.0 + boost 1.87.0)
結果
TLE  
実行時間 -
コード長 1,130 bytes
コンパイル時間 6,047 ms
コンパイル使用メモリ 274,672 KB
実行使用メモリ 29,448 KB
最終ジャッジ日時 2025-07-07 11:14:59
合計ジャッジ時間 10,855 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 1 TLE * 1 -- * 24
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define endl "\n"
#define pb push_back
#define ff first
#define ss second
#define ii pair<int, int>
#define vi vector<int>
#define vii vector<pair<int, int>>
#define vvi vector<vi>
#define mii map<int, int>
#define rep(i, a, b) for (int i = a; i <= b; i++)
#define _READ(name) freopen(name, "r", stdin)
#define _WRITE(name) freopen(name, "w", stdout)

int n; const int mx = 5e7 + 3;
int sq[mx];
int mp[mx];
void Prepare() {
    cin >> n;
}

int tinh(int x) {
	int y = 1;
	for (int i = 2; i *i <= x; i++) {
		int cnt = 0;
		while (x%i==0) {
			cnt++; x/=i;
		}
		if (cnt%2==1) y *= i;
	}
	if (x > 1) y *= x;
	
	return y;
}

void COOOOK() {
	for (int i = 1; i <= n; i++) sq[i] = tinh(i);
	
	ll ans = 0;
	rep(i, 1, n) {
		mp[sq[i]]++;
	}
	
	rep(i, 1, n) {
		ans += (mp[i]*1ll*mp[i]);
	}
	cout << ans;
}

void Eat() {

}

void Wash() {

}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr); cout.tie(nullptr);

    int TEST = 1;
    while (TEST--) {
        Prepare();
        COOOOK();
        Eat();
        Wash();
    }

    return 0;

}
0