• XidianOJ 1098 突击数论前的xry111


    题目描述

    xry111发现自己的数论知识不太行,于是准备回顾一下以前学过的数论知识后开始学习高深数论以便解决暗黑数学题。回顾过程中,xry111发现欧拉函数挺有用的(欧拉函数是指:对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n)),xry111刚学欧拉函数时每次求φ(n)时总是习惯从1枚举到n-1,然后依次判断其是否合法。所以对于某些比较大的数,当年的xry111常常数数数到头晕。但是现在作为一个可以讲课可以写题解的xry111来说,他想知道某个数的欧拉值已经不必再一个一个的数啦,因为他可以机智的让你帮忙:对于一个数n,你得告诉xry111其欧拉值φ(n)是多少。

    输入

    多组数据(数据组数大约10^5组),请处理到文件结束,每组数据一行n(1<=n<=10^5)。

    输出

    每组数据输出一行对应的φ(n)值。

    --正文

    直接预处理就好。。

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    #include <cstdlib>
    #include <algorithm>
    using namespace std;
    #define SIZE 100001
    int euler(int n){
        int res = 1; int i;
        for (i=2;i*i<=n;i++){
            if (n % i == 0){
                n /= i;
                res *= i-1;
                while (n % i == 0){
                    n /= i; res*= i;
                }
            }
        }
        if (n > 1) res*= n-1;
        return res;
    } 
    
    int e[SIZE+1];
    int main(){
        int i;
        e[1] = 1;
        for (i=2;i<=SIZE;i++){
            e[i] = euler(i);
        }
        int n;
        while (scanf("%d",&n) != EOF){
            printf("%d
    ",e[n]);
        }
        return 0;
    } 
  • 相关阅读:
    shl and shr
    清空和填充內存
    php 中instanceof的使用
    HTTP错误代码大全
    临时关闭Mysql ONLY_FULL_GROUP_BY
    php 中instanceof的使用
    Laravel Eloquent ORM 时如何查询表中指定的字段
    vagrant在windows下的使用
    下载配置python tornado web window7 开发笔记1:环境搭建
    运行确认怎么用vnc访问自己电脑,并且同时又是同一个会话?
  • 原文地址:https://www.cnblogs.com/ToTOrz/p/6106546.html
Copyright © 2020-2023  润新知