HDU 6322 Problem D. Euler Function(数论)

201 篇文章 10 订阅

Description

输出第 k k 个欧拉函数值为合数的数字

Input

第一行一整数T表示用例组数,每组用例输入一整数 k k (1T105,1k109)

Output

输出第 k k 个欧拉函数值为合数的数字

Sample Input

2
1
2

Sample Output

5
7

Solution

n质因子分解有 n=pa11...pamm n = p 1 a 1 . . . p m a m ,那么 φ(n)=(p11)...(pm1)pa111...pam1m φ ( n ) = ( p 1 − 1 ) . . . ( p m − 1 ) p 1 a 1 − 1 . . . p m a m − 1

m3 m ≥ 3 时, p31 p 3 − 1 必然为合数

m=2 m = 2 时,只有当 p1=2,p2=3,a1=a2=1 p 1 = 2 , p 2 = 3 , a 1 = a 2 = 1 时,也即 n=6 n = 6 φ(n) φ ( n ) 是合数

m=1 m = 1 时,当 p1>3 p 1 > 3 时显然 φ(n) φ ( n ) 为合数,而当 p1=3 p 1 = 3 时,只有当 a1=1 a 1 = 1 也即 n=3 n = 3 φ(n) φ ( n ) 不是合数,当 p1=2 p 1 = 2 时,只有 a1=1,2 a 1 = 1 , 2 φ(n) φ ( n ) 不是合数

综上,只有 n=1,2,3,4,6 n = 1 , 2 , 3 , 4 , 6 φ(n) φ ( n ) 不是合数,其余情况均为合数

Code

#include<cstdio>
using namespace std;
int main()
{
    int T,k;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&k);
        if(k==1)printf("5\n");
        else printf("%d\n",k+5);
    }
    return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值