Cod sursa(job #749642)

Utilizator SzakatsSzakats Istvan Szakats Data 17 mai 2012 22:04:44
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <stdio.h>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <stdio.h>
#include <iostream>
#include <algorithm>
using namespace std;

#ifdef _WIN32
#define TYPEOF decltype
#else
#define TYPEOF typeof
#endif

#define FOR(i,s,e) for(int i = s;i < e; i++)
#define TR(i, c) for(TYPEOF(c.begin()) i = c.begin(); i != c.end(); ++i)
#define TRS(i, c, ...) TR(__itr, c) { TYPEOF(*c.begin()) &i = *__itr;  __VA_ARGS__ }
#define TRP(f, s, c, ...) TR(__itr, c) { TYPEOF(c.begin()->first) &f = __itr->first; TYPEOF(c.begin()->second) &s = __itr->second;  __VA_ARGS__ }

#define MAXN 1000007

float p[MAXN];

int main()
{
#if 1
	freopen("fractii.in", "r", stdin);
#ifndef MY_STUFF
	freopen("fractii.out", "w", stdout);
#endif
#endif

	int n = 10;
	//scanf("%d", &n);

	for(int i = 0; i <= n; i++)
		p[i] = 1.0;

	int s = 0;
	for(int i = 2; i <= n; i++) {
		if(p[i] == 1.0) {
			s += (i-1);
			for(int j = i+i; j <= n; j+=i) {
				p[j] *= (1.0 - 1.0 / i);
			}
		} else
			s += i*p[i];
	}

	printf("%d\n", 1+2*s);

	return 0;
}