数据结构数列求和问题

现在有一个数列:1 3 6 10 15 21…
求这个数列的前n项和%mod的结果。
输入
第一行是一个正整数T代表测试案例的数量。(1<=T<=10)
从第二行到第T+1行,每行是两个正整数n和mod。(1<=n<= 1e9,1<= mod <=1e9+7)
输出
针对每组案例,输出这个数列的前n项和%mod的结果,然后换行。

数列关系是前一项比后一项逐步增加,从2,3,4,5,6...

#include <iostream>
using namespace std;
int main()
{
    int T;
    cin>>T;
    for(int i=0;i<T;i++)
    {
        int n,mod,a=1,t=1;
        cin>>n>>mod;
        for(int j=1;j<=n;j++)
        {
            cout<<a%mod<<" ";
            t++;
            a+=t;
        }
        cout<<endl;
    }
    return 0;
}