zoukankan      html  css  js  c++  java
  • poj 1284 Primitive Roots(未完)

    Primitive Roots
    Time Limit: 1000MS   Memory Limit: 10000K
    Total Submissions: 3155   Accepted: 1817

    Description

    We say that integer x, 0 < x < p, is a primitive root modulo odd prime p if and only if the set { (xi mod p) | 1 <= i <= p-1 } is equal to { 1, ..., p-1 }. For example, the consecutive powers of 3 modulo 7 are 3, 2, 6, 4, 5, 1, and thus 3 is a primitive root modulo 7. 
    Write a program which given any odd prime 3 <= p < 65536 outputs the number of primitive roots modulo p. 

    Input

    Each line of the input contains an odd prime numbers p. Input is terminated by the end-of-file seperator.

    Output

    For each p, print a single number that gives the number of primitive roots in a single line.

    Sample Input

    23
    31
    79
    

    Sample Output

    10
    8
    24
    

    Source

     1 #include<iostream>
     2 using namespace std;
     3 int euler(int a){
     4     int i=2;
     5     int ans=a;
     6     if(a%2==0){
     7         //cout<<2<<endl;
     8         ans=ans/i*(i-1);
     9         while(a%2==0){
    10               a/=2;
    11         }
    12     }
    13     for(i=3;i<=a;i+=2){//优化 
    14     if(a%i==0){
    15         //cout<<i<<endl;
    16         ans=ans/i*(i-1);
    17         while(a%i==0){
    18               a/=i;
    19             }
    20         }
    21     }
    22     return ans;
    23 }
    24 int main()//23, 28, and 33
    25 {
    26     int p;
    27     while(cin>>p){
    28         cout<<euler(p-1)<<endl;
    29     }
    30     return 0;
    31 }
  • 相关阅读:
    转载的log4cplus使用指南
    linux下安装log4cplus
    MongoDB常用命令
    ios UIButton改背景
    ios发送邮件
    oracle数据库 in 结果字段的拆分
    Server returned HTTP response code: 505
    ORA-01795:列表中的最大表达式数为1000
    ajax post请求
    oracle 同义词
  • 原文地址:https://www.cnblogs.com/Deribs4/p/4299102.html
Copyright © 2011-2022 走看看