码迷,mamicode.com
首页 > 其他好文 > 详细

P1174 互素

时间:2016-03-27 15:24:02      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

P1174 互素

时间: 1000ms / 空间: 131072KiB / Java类名: Main

描述

    对于某个数n,,我们这次的工作仅是求出小于n且和n互质的数的个数,,比如n=10时 1,3,7,9均与10互质

//互质的定义是gcd(a,b)=1

输入格式

 

输入只有一行,一个数N1<=N<=2,000,000,000)。

输出格式

输出也只有一行,输出和小于n且和n互质的数的个数

测试样例1

输入

10

输出

4

----------------------------------------------------------------------------------------

 * 欧拉函数是指:对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n) 

通式:φ(x)=x*(1-1/p1)*(1-1/p2)*(1-1/p3)*(1-1/p4)..(1-1/pn),其中p1, p2……pn为x的所有质因数,x是不为0的整数。φ(1)=1(唯一和1互质的数就是1本身)。

-------------------------------------------------------------------------------------------------------------------

评测状态 Accepted

题目 P1174 互素

提交时间 2016-03-27 09:21:23

代码语言 Java

消耗时间 1325 ms

消耗内存 14288 KiB

----------------------------------------------------------------

import java.util.Scanner;
public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            int n=sc.nextInt();
            int i;
            int cnt=n;
            for(i=2;n!=1;i++){
                if(n%i==0){
                    cnt-=cnt/i;
                    while(n%i==0) n/=i;
                }
            }
            System.out.println(cnt);
        }
        sc.close();

    }

}

 

P1174 互素

标签:

原文地址:http://www.cnblogs.com/watchfree/p/5325573.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!