列表

详情


NC214732. 小幼稚的生日

描述

又是那个熟悉的幼稚园。幼稚园里的小幼稚们都长大了一岁,今年来了一个新的小小幼稚。
今天,是小小幼稚的生日,他要给大家发礼物了。但是,小小幼稚没有准备足够的礼物,可能无法给每一个小幼稚送礼物。
幼稚长给了他一个办法,所有的小幼稚(包括小小幼稚)一共 n 个人,排成一列,小小幼稚站在位置 n ,他会从后往前走,每走到一个位置 x 满足 gcd(x,n)=1 的时候,他会给这个位置的小幼稚 x 个糖果(当然,如果条件满足,小小幼稚也会奖励自己糖果)。
其中,gcd(a,b) 表示 a,b 两个数的最大公约数,比如 gcd(2,4)=2,gcd(3,6)=3 。
请问,每个获得糖果的小幼稚平均能收获多少个糖果,结果保留一位小数?

输入描述

输入一个整数 n 表示小幼稚(包括小小幼稚)的个数。

输出描述

输出每个获得糖果的小幼稚(或小小幼稚)平均能收获多少个糖果,结果保留一位小数。

示例1

输入:

4

输出:

2.0

示例2

输入:

5

输出:

2.5

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C(clang11) 解法, 执行用时: 2ms, 内存消耗: 368K, 提交时间: 2020-12-26 16:51:22

#include <stdio.h>
int main(){
	double n;
	scanf("%lf", &n);
	if(n!=1)
		printf("%.1lf", n / 2);
	else
		printf("1.0");
	return 0;
}

pypy3(pypy3.6.1) 解法, 执行用时: 36ms, 内存消耗: 18780K, 提交时间: 2020-12-26 16:26:54

n = int(input())
if n == 1:
  print('1.0')
  exit(0)
if n % 2 == 1:
  print(str(n // 2) + '.5')
else:
  print(str(n // 2) + '.0')

C++(clang++11) 解法, 执行用时: 6ms, 内存消耗: 504K, 提交时间: 2021-01-22 15:08:20

#include<bits/stdc++.h>
using namespace std;
double n;
int main()
{
	cin>>n;
	printf("%.1f",(n+(n==1))/2);
}

Python3 解法, 执行用时: 44ms, 内存消耗: 4528K, 提交时间: 2023-06-17 12:52:32

n = int(input())
if n==1:
    print(1.0)
else:
    print(n/2)

上一题