Cod sursa(job #2493464)
| Utilizator | Data | 16 noiembrie 2019 12:45:28 | |
|---|---|---|---|
| Problema | Suma si numarul divizorilor | Scor | 30 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.73 kb |
#include <iostream>
#include <fstream>
using namespace std;
const int MOD = 9973;
void sumaDiv(int x, int &s, int &nr) {
s=1+x; nr=2;
for(int i=2; i<=x/2; i++)
if(x%i==0) {
if(x/i>=i) {
s = (s+i)%MOD;
nr++;
if(x/i==x%i) break;
s = (s+x/i)%MOD;
nr++;
}
else break;
}
}
int main()
{
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int t, n;
fin >> t;
int s, nr;
for(int i=1; i<=t; i++) {
fin >> n;
sumaDiv(n, s, nr);
fout << nr << ' ' << s << '\n';
}
fin.close();
fout.close();
return 0;
}
