zoukankan      html  css  js  c++  java
  • 找新朋友(欧拉函数)

    找新朋友

    Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)
    Total Submission(s) : 39   Accepted Submission(s) : 32

    Font: Times New Roman | Verdana | Georgia

    Font Size: ← →

    Problem Description

    新年快到了,“猪头帮协会”准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长是老朋友的,那么该会员的号码肯定和N有大于1的公约数,否则都是新朋友,现在会长想知道究竟有几个新朋友?请你编程序帮会长计算出来。

    Input

    第一行是测试数据的组数CN(Case number,1<CN<10000),接着有CN行正整数N(1<n<32768),表示会员人数。

    Output

    对于每一个N,输出一行新朋友的人数,这样共有CN行输出。

    Sample Input

    2
    25608
    24027
    

    Sample Output

    7680
    16016
    题解:
    欧拉函数的模板题;
    代码:
     1 #include<stdio.h>
     2 #include<math.h>
     3 int main(){
     4         int T,N;
     5         scanf("%d",&T);
     6         while(T--){
     7             scanf("%d",&N);
     8             int ans=N;
     9             for(int i=2;i<=sqrt(N);i++){
    10                     if(N%i==0){
    11                         ans=ans/i*(i-1);
    12                         while(N%i==0)
    13                             N/=i;
    14                     }
    15             }
    16             if(N>1)ans=ans/N*(N-1);
    17             printf("%d
    ",ans);
    18         }
    19     return 0;
    20 }
  • 相关阅读:
    tcp/ip的通俗讲述(转)
    linux中的read_link
    浅拷贝和深拷贝
    JAVA的动态代理Jdk实现方式
    友元函数
    孤儿进程、僵尸进程
    waitpid()函数
    wait()函数
    dup2函数
    exec族函数
  • 原文地址:https://www.cnblogs.com/handsomecui/p/4763749.html
Copyright © 2011-2022 走看看