Cod sursa(job #2117469)

Utilizator lonca.sorin01Lonca Sorin lonca.sorin01 Data 28 ianuarie 2018 21:24:59
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
#include <cmath>
using namespace std;
bool iscolorat[4000001];
int main()
{
	long long n, i, nrdiv=0, s=0, j, t;
	ifstream f("ssnd.in");
	ofstream g("ssnd.out");
	for(i=2; i<=4000000; i++)
	{
		if(iscolorat[i]==0)
		{
			for(j=i+i; j<=4000000; j+=i)
				iscolorat[i]=1;
		}
	}
	f>>t;
	for(j=1; j<=t; j++)
	{
		nrdiv=0;
		s=0;
		f>>n;
		if(n<1000000 && iscolorat[n]==0)
		{
			g<<2<<" "<<(1+n)%9973<<"\n";
			continue;
		}
		long long l=sqrt(n);
		for(i=1; i<=l; i++)
		{
			if(n%i==0 && i*i!=n)
			{
				nrdiv+=2;
				s=s+i;
				s=s%9973;
				s=s+(n/i);
				s=s%9973;
			}
			if(i*i==n)
			{
				nrdiv++;
				s=s+i;
				s=s%9973;
			}
		}
		g<<nrdiv<<" "<<s<<"\n";
	}
	
}