分解质因数,样例过了,RE求助
查看原帖
分解质因数,样例过了,RE求助
1088451
Misaka16384楼主2024/5/9 19:55
#include <bits/stdc++.h>
using namespace std;
long long t, n, vis[1000005], p[1000005], sum;
void cs () {
	vis[0] = vis[1] = sum = 1;
	for (long long i = 2; i <= 1000000; i++) {
		if (vis[i]) continue;
		p[sum] = i;
		sum++;
		for (long long j = i * 2; j <= 1000000; j += i)
			vis[j] = 1;
	}
}
int main () {
	scanf ("%lld", &t);
	cs ();
	while (t--) {
		scanf ("%lld", &n);
		for (long long i = 1; i * i <= n && n > 1; i++) {
			while (n > 1 && !(n % p[i])) {
				printf ("%lld ", p[i]);
				n /= p[i];
			}
		}
		if (n > 1) {
			printf ("%lld", n);
		}
		printf ("\n");
	}
	return 0;
} 

样例过了,"i * i <= n"也写了,不知道为什么RE。

2024/5/9 19:55
加载中...