Cod sursa(job #1505638)

Utilizator NicuCJNicu B. NicuCJ Data 19 octombrie 2015 16:41:54
Problema Suma si numarul divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#include <cmath>
using namespace std;
bool iscolorat[1000001];
int main()
{
	long long n, i, nrdiv=0, s=0, j, t;
	ifstream f("ssnd.in");
	ofstream g("ssnd.out");
	for(i=2; i<=1000000; i++)
	{
		if(iscolorat[i]==0)
		{
			for(j=i+i; j<=1000000; j+=i)
				iscolorat[i]=1;
		}
	}
	f>>t;
	for(j=1; j<=t; j++)
	{
		nrdiv=0;
		s=0;
		f>>n;
		if(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";
	}
	
}