Pagini recente » Cod sursa (job #2743190) | Cod sursa (job #2284450) | Cod sursa (job #2532789) | Cod sursa (job #1374697) | Cod sursa (job #2097508)
#include <fstream>
#define DIM 5000002
using namespace std;
ifstream f("pascal.in");
ofstream g("pascal.out");
int n, d, DOI, TREI, PATRU, CINCI, SASE, doi[DIM], trei[DIM], cinci[DIM], cnt;
bool viz[DIM];
int main()
{
f>>n>>d;
doi[2] = 1;
trei[3] = 1;
cinci[5] = 1;
for(int i = 2; i <= n / i; ++ i){
int nr = i;
if(!viz[i]){
for(int j = i; j <= n / i; ++ j){
doi[i * j] = doi[i] + doi[j];
viz[i * j] = 1;
}
viz[i] = 1;
}
viz[i] = 0;
// ++ cnt;
}
for(int i = 2; i <= n / i; ++ i){
int nr = i;
if(!viz[i]){
for(int j = i; j <= n / i; ++ j){
trei[i * j] = trei[i] + trei[j];
viz[i * j] = 1;
}
viz[i] = 1;
}
viz[i] = 0;
// ++ cnt;
}
for(int i = 2; i <= n / i; ++ i){
int nr = i;
if(!viz[i]){
for(int j = i; j <= n / i; ++ j){
cinci[i * j] = cinci[i] + cinci[j];
viz[i * j] = 1;
}
}
viz[i] = 0;
//++ cnt;
}
DOI = 0;
TREI = 0;
CINCI = 0;
int s = 0;
for(int i = 0; i <= n / 2; ++ i){
switch (d){
case 2: if(DOI > 0) ++ s; break;
case 3: if(TREI > 0) ++ s; break;
case 4: if(DOI > 1) ++ s; break;
case 5: if(CINCI > 0) ++ s; break;
case 6: if(DOI > 0 && TREI > 0) ++ s; break;
}
DOI -= doi[i + 1];
TREI -= trei[i + 1];
CINCI -= cinci[i + 1];
DOI += doi[n - i];
TREI += trei[n - i];
CINCI += cinci[n - i];
//++ cnt;
}
s *= 2;
if(!(n % 2))
-- s;
g<<s;//<<" "<<cnt;
return 0;
}