Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <iostream>
- #include <memory.h>
- #include <string.h>
- #include <math.h>
- #include <algorithm>
- #include <set>
- #include <map>
- #include <string>
- #include <vector>
- #define INPUT_FILE "input.txt"
- #define OUTPUT_FILE "output.txt"
- #define clear(x) memset(x,0,sizeof(x))
- #define fill(a,b) memset(a,b,sizeof(a))
- #define Forn(i,y) for (int i=0; i<(y); i++)
- #define Fornr(i,y) for (int i=(y)-1; i>=0; i--)
- #define Forp(i,x,y) for (int i=(x); i<=(y); i++)
- #define Forpr(i,x,y) for (int i=(x); i>=(y);i--)
- #define pb push_back
- typedef long long ll;
- typedef std::pair< int, int> pii;
- const int INF = 2147483647;
- const int MaxC = 200010;
- using namespace std;
- int phi(int x)
- {
- if (x==1) return 2;
- int result=x;
- for (int i=2; i*i<=x; i++)
- if (x%i==0)
- {
- while (x%i==0) x/=i;
- result-=result/i;
- }
- if (x>1) result-=result/x;
- return result;
- }
- int gcd(int a, int b)
- {
- while (b)
- {
- a%=b;
- swap(a,b);
- }
- return a;
- }
- int main()
- {
- #ifndef ONLINE_JUDGE
- freopen(INPUT_FILE,"r",stdin);
- freopen(OUTPUT_FILE,"w",stdout);
- #endif
- ll n;
- scanf("%I64d",&n);
- while (n!=0)
- {
- ll ans=0,pre;
- int m=0;
- for (int i=1; i<=MaxC; i++)
- {
- pre=(ll)phi(i);
- if (n<=ans+pre)
- {
- m=i;
- break;
- }
- else
- ans+=pre;
- }
- ll q=0;
- for (int i=0; i<=m; i++)
- {
- q+=(gcd(i,m)==1);
- if (ans+q==n)
- {
- printf("%d/%d\n",i,m);
- break;
- }
- }
- scanf("%I64d",&n);
- }
- #ifdef ONLINE_JUDGE
- fclose(stdin); fclose(stdout);
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement