(悬关)80pts,最后一个点T,求帮优化
查看原帖
(悬关)80pts,最后一个点T,求帮优化
660871
2011Andy楼主2024/7/28 10:17
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e6 + 5;
int a[N];
int maxn = -1;
signed main(){
	int n;
	cin >> n;
	for(int x = 2 ; x <= n ; x++){
		int num = x;
		for(int i = 2 ; i * i <= x ; i++){
            while(num % i == 0){
            	a[i]++;
            	maxn = max(maxn , i);
                num /= i;
            }
        }
        if(num > 1){
        	a[num]++;
        	maxn = max(maxn , num);
		}
	}
	for(int i = 2 ; i <= maxn ; i++){
		if(!a[i]) continue;
		cout << i << " " << a[i] << "\n";
	}
	return 0;
}
2024/7/28 10:17
加载中...