• 【poj 2407 欧拉函数】


    Relatives
    Time Limit: 1000MS   Memory Limit: 65536K
    Total Submissions: 8841   Accepted: 4134

    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

     
     
     1 // Project name : 2407 ( Relatives ) 
     2 // File name    : main.cpp
     3 // Author       : Izumu
     4 // Date & Time  : Fri Jul 13 16:13:57 2012
     5 
     6 
     7 #include <iostream>
     8 #include <stdio.h>
     9 #include <string>
    10 #include <cmath>
    11 #include <algorithm>
    12 using namespace std;
    13 
    14 typedef unsigned long long int longint;
    15 
    16 longint phi(longint num)
    17 {
    18     longint sum = 1;
    19     for (longint i = 2; i <= sqrt(num); i++)
    20     {
    21         if(num % i == 0)
    22         {
    23             while (num % i == 0)
    24             {
    25                 sum *= i;
    26                 num /= i;
    27             }
    28             sum /= i;
    29             sum *= (i - 1);
    30         }
    31     }
    32 
    33     if (num != 1)
    34     {
    35         sum *= (num - 1);
    36     }
    37 
    38     return sum;
    39 }
    40 
    41 int main()
    42 {
    43     longint number;
    44     while (cin >> number && number)
    45     {
    46         cout << phi(number) << endl;
    47     }
    48     return 0;
    49 }
    50 
    51 // end 
    52 // ism 
  • 相关阅读:
    希尔排序(六)
    快速排序(五)
    oracle中的minus数据比对
    oracle中过滤中文字符或者汉字的函数
    java中已经排序的列表中插入新值
    java中双向链表的增、删、查操作
    oracle中建同名
    oracle中创建dblink
    oracle中把函数的执行权限赋个某个用户
    oracle中导出表的结构和数据
  • 原文地址:https://www.cnblogs.com/ismdeep/p/2590459.html
Copyright © 2020-2023  润新知