Đoạn code 2 vòng for bị đơ

#include <bits/stdc++.h>
#define FOR(i,a,b) for(int i=a;i<=b;i++)
typedef long long ll;
using namespace std;
const ll N=1e6+5;
ll a[N+5];
void tinh()
{
    for (ll i=2 ;i<N;i++)
    for(ll j=i;j<=N;j+=i)
    a[j]++ ;
	FOR(i,2,N-1)
    a[i]=max(a[i]*i,a[i-1]);
}
int main()
{
	tinh();
	int n,t;
	cin >> t;
	while(t--)
	{
		cin >> n;
		cout << a[n]+n << endl;
	}
}

Mình không hiểu tại sao khi dùng for(){ for() } thì chương trình bị đơ và time limit trong khi chỉ sửa for() for() như trong hàm trên lại chạy bình thường, ai giải thích hộ với :((

A post was merged into an existing topic

A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3

A post was merged into an existing topic

Đã chuyển hết sang topic gốc

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?