D - Problem D. Euler Function HDU - 6322

In number theory, Euler's totient function φ(n)φ(n) counts the positive integers up to a given integer nn that are relatively prime to nn. It can be defined more formally as the number of integers kk in the range 1kn1≤k≤n for which the greatest common divisor gcd(n,k)gcd(n,k) is equal to 11. 
For example, φ(9)=6φ(9)=6 because 1,2,4,5,71,2,4,5,7 and 88 are coprime with 99. As another example, φ(1)=1φ(1)=1 since for n=1n=1 the only integer in the range from 11 to nn is 11itself, and gcd(1,1)=1gcd(1,1)=1. 
A composite number is a positive integer that can be formed by multiplying together two smaller positive integers. Equivalently, it is a positive integer that has at least one divisor other than 11 and itself. So obviously 11 and all prime numbers are not composite number. 
In this problem, given integer kk, your task is to find the kk-th smallest positive integer nn, that φ(n)φ(n) is a composite number. 

InputThe first line of the input contains an integer T(1T100000)T(1≤T≤100000), denoting the number of test cases. 
In each test case, there is only one integer k(1k109)k(1≤k≤109). 
OutputFor each test case, print a single line containing an integer, denoting the answer. 

Sample Input

2
1
2

Sample Output

5
7

给定k,求第k 小的数n,满足φ(n) 是合数。
1 ≤ k ≤ 109。
Shortest judge solution: 150 bytes

打表找规律

当且仅当n = 1, 2, 3, 4, 6 时,φ(n) 不是合数。

这里不作数学证明

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     ll t , k;
 6     cin >> t;
 7     while(t--)
 8     {
 9         cin >> k; 
10         if( k == 1)
11             cout << 5<<endl; 
12         else cout << k+5<<endl;
13     }
14     return 0;
15 }

 

posted @ 2019-07-22 10:34  YukiRinLL  阅读(156)  评论(0编辑  收藏  举报