O(n)做法 数论

#include<iostream>
using namespace std;

int cnt[100010];
int n,k,sum,t;
long long ans;

int main()
{
    cin >> n >> k;
    cnt[0] = 1;
    for(int i = 1;i <= n;i ++)
    {
        cin >> t;
        (sum += t) %= k;
        ans += cnt[sum]++;
    }
    
	cout << ans;
    
	return 0;
}