• POJ2407:Relatives(欧拉函数) java程序员


    Relatives
    Time Limit: 1000MS   Memory Limit: 65536K
    Total Submissions: 9411   Accepted: 4453

    Description

    Given n, a positive integer, how many positive integers less than n are relatively prime to n? Two integers a and b are relatively prime if there are no integers x > 1, y > 0, z > 0 such that a = xy and b = xz.

    Input

    There are several test cases. For each test case, standard input contains a line with n <= 1,000,000,000. A line containing 0 follows the last case.

    Output

    For each test case there should be single line of output answering the question posed above.

    Sample Input

    7
    12
    0
    

    Sample Output

    6
    4
    

    Source

    MYCode:
    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    int euler(int x)
    {
        int res=x;
        int i;
        for(i=2;i*i<=x;i++)
        {
            if(x%i==0)
            {
                res=res*1.0/i*(i-1);
                while(x%i==0)x/=i;
            }
        }
        if(x>1)res=res/x*(x-1);
        return res;
    }
    int main()
    {
        int p;
        while(scanf("%d",&p))
        {
            if(p==0)
            break;
            int ans=euler(p);
            printf("%d\n",ans);
        }
    }
    //
    欧拉函数模板题,可以使用素数表优化.
  • 相关阅读:
    centos7使用supermin制作centos7的docker镜像包
    Linux ip netns 命令
    ip命令讲解
    openstack API应用用
    在EF6.0中打印数据库操作日志
    EF记录统一添加创建,修改时间
    Inner Join and Left Join 与条件的结合
    字符串分割
    居中方案
    移动 前端 框架
  • 原文地址:https://www.cnblogs.com/java20130725/p/3215894.html
Copyright © 2020-2023  润新知