• 【luoguP2158】 [SDOI2008]仪仗队


    题目描述

    作为体育委员,C君负责这次运动会仪仗队的训练。仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图)。 现在,C君希望你告诉他队伍整齐时能看到的学生人数。

    输入格式

    共一个数N

    输出格式

    共一个数,即C君应看到的学生人数。

    输入输出样例

    输入 #1
    4
    输出 #1
    9

    说明/提示

    【数据规模和约定】

    对于 100% 的数据,1 ≤ N ≤ 40000

    代码:

    #include<cstdio>
    #include<iostream>
    #include<cstdlib>
    #define int long long
    const int N = 400010;
    using namespace std;
    int n,prime[N],phi[N],cnt,tot,ans;
    bool vis[N];
    void yilnr()
    {
    	vis[1]=1;
    	for(int i=2;i<=n;i++)
    	{
    		if(!vis[i])
    		{
    			prime[++cnt]=i;
    			phi[i]=i-1;
    		}
    		for(int j=1 ; j<=cnt && i*prime[j]<=n;j++)
    		{
    			vis[i*prime[j]]=1;
    			if(i%prime[j]==0)
    			{
    				phi[i*prime[j]]=phi[i]*prime[j];
    				break;
    			}
    			phi[i*prime[j]]=phi[i]*phi[prime[j]];
    		}
    	}
    }
    signed main()
    {
    	scanf("%lld",&n);
    	yilnr();
    	if(n==1)
    	{
    		cout<<"0";
    		return 0;
    	}
    	for(int i=2;i<=n-1;i++)ans+=phi[i];
    	printf("%lld
    ",ans*2+3);
    	return 0;
    }
    

      

  • 相关阅读:
    LinkedListQueue
    LinkedListStack
    redis学习之——Redis事务(transactions)
    redis学习之——持久化RDB 和AOF
    redis学习之——redis.conf配置(基本)文件学习
    评估算法的核心指标
    Vector类
    List接口与ArrayList、LinkedList实现类
    Collection接口
    枚举类
  • 原文地址:https://www.cnblogs.com/yelir/p/11535397.html
Copyright © 2020-2023  润新知