QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#550508#9248. An Easy Math Problemucup-team3931#RE 1ms4848kbC++141.1kb2024-09-07 13:15:542024-09-07 13:15:54

Judging History

This is the latest submission verdict.

  • [2024-10-31 22:36:43]
  • hack成功,自动添加数据
  • (/hack/1098)
  • [2024-10-31 22:13:58]
  • hack成功,自动添加数据
  • (/hack/1096)
  • [2024-10-31 22:00:43]
  • hack成功,自动添加数据
  • (/hack/1095)
  • [2024-09-07 13:15:54]
  • Judged
  • Verdict: RE
  • Time: 1ms
  • Memory: 4848kb
  • [2024-09-07 13:15:54]
  • Submitted

answer

#include <bits/stdc++.h>
#define pb emplace_back
#define fst first
#define scd second
#define mkp make_pair
#define mems(a, x) memset((a), (x), sizeof(a))

using namespace std;
typedef long long ll;
typedef double db;
typedef unsigned long long ull;
typedef long double ldb;
typedef pair<ll, ll> pii;

const int maxn = 100100;
const int N = 100000;

ll n, m, pr[maxn], tot, mpr[maxn];
pii p[maxn];
bool vis[maxn];

inline void init() {
	for (int i = 2; i <= N; ++i) {
		if (!vis[i]) {
			pr[++tot] = i;
			mpr[i] = i;
		}
		for (int j = 1; j <= tot && i * pr[j] <= N; ++j) {
			vis[i * pr[j]] = 1;
			mpr[i * pr[j]] = pr[j];
			if (i % pr[j] == 0) {
				break;
			}
		}
	}
}

void solve() {
	m = 0;
	scanf("%lld", &n);
	while (n > 1) {
		ll t = mpr[n], cnt = 0;
		while (n % t == 0) {
			n /= t;
			++cnt;
		}
		p[++m] = mkp(t, cnt);
	}
	ll ans = 1;
	for (int i = 1; i <= m; ++i) {
		ans *= (p[i].scd * 2 + 1);
	}
	printf("%lld\n", (ans + 1) / 2);
}

int main() {
	init();
	int T = 1;
	scanf("%d", &T);
	while (T--) {
		solve();
	}
	return 0;
}

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 4848kb

input:

10
1
2
3
4
5
6
7
8
9
10

output:

1
2
2
3
2
5
2
4
3
5

result:

ok 10 lines

Test #2:

score: -100
Runtime Error

input:

2000
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
646969323...

output:


result: