zoukankan      html  css  js  c++  java
  • 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;
    } 
  • 相关阅读:
    js 闭包
    js 图片放大镜功能
    前端页面优化
    css 背景图片自适应分辨率大小 兼容
    纯css实现箭头
    js 排序算法
    css3 渐变 兼容
    css 兼容性总结
    css3 @keyframe 抖动/变色动画
    关于$.data(element,key,value)与ele.data.(key,value)的区别
  • 原文地址:https://www.cnblogs.com/ToTOrz/p/6106546.html
Copyright © 2011-2022 走看看