2017年上海金马五校程序设计竞赛:Problem I : Frog's Jumping (找规律)
Description
There are n lotus leaves floating like a ring on the lake, which are numbered 0, 1, ..., n-1 respectively. The leaf 0 and n-1 are adjacent.
The frog king wants to play a jumping game. He stands at the leaf 0 initially. For each move, he jumps k (0 < k < n) steps forward. More specifically, if he is standing at the leaf x, the next position will be the leaf (x + k) % n.
After n jumps, he wants to go through all leaves on the lake and go back to the leaf 0 finally. He can not figure out how many different k can be chosen to finish the game, so he asks you for help.
Input
There are several test cases (no more than 25).
For each test case, there is a single line containing an integer n (3 ≤ n ≤ 1,000,000), denoting the number of lotus leaves.
Output
For each test case, output exactly one line containing an integer denoting the answer of the question above.
Sample Input
4
5
Sample Output
2
4
分析:
一些荷叶漂浮在湖面上其编号是0n-1,有一只青蛙初始再0位置,它每次可以跳过K个位置(0<K<n),最终跳n次回到0.求1n-1中有多少个K值满足在n此次跃中可以把每片荷叶就跳一次。
i 从 2~n-1 . 如果 n%i 取余等于0.则 i 和 i 的倍数全都不满足要求。
代码:
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<map>
using namespace std;
int vis[1000000];
int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        long long ans = n-1;
        memset(vis,0,sizeof(vis));
        for(int i = 2; i <= n/2; i++)///后一半中的如果不能够走的话,肯定有个倍数在前一半出现过
        {
            if(n%i == 0)
            {
                for(int j = i; j < n; j+=i)///往后找整数倍
                {
                    if(vis[j]==0)
                    {
                        vis[j] = 1;
                        ans--;
                    }
                }
            }
        }
        printf("%lld\n",ans);
    }
    return 0;
}2017年上海金马五校程序设计竞赛:Problem I : Frog's Jumping (找规律)的更多相关文章
- 2017年上海金马五校程序设计竞赛:Problem K : Treasure Map  (蛇形填数)
		Description There is a robot, its task is to bury treasures in order on a N × M grids map, and each ... 
- 2017年上海金马五校程序设计竞赛:Problem G : One for You   (博弈)
		Description Given a m × n chessboard, a stone is put on the top-left corner (1, 1). Kevin and Bob ta ... 
- 2017年上海金马五校程序设计竞赛:Problem E : Find Palindrome   (字符串处理)
		Description Given a string S, which consists of lowercase characters, you need to find the longest p ... 
- 2017年上海金马五校程序设计竞赛:Problem C : Count the Number    (模拟)
		Description Given n numbers, your task is to insert '+' or '-' in front of each number to construct ... 
- 2017年上海金马五校程序设计竞赛:Problem B : Sailing   (广搜)
		Description Handoku is sailing on a lake at the North Pole. The lake can be considered as a two-dime ... 
- 2017年上海金马五校程序设计竞赛:Problem A : STEED Cards   (STL全排列函数)
		Description Corn does not participate the STEED contest, but he is interested in the word "STEE ... 
- 2017Summmer_上海金马五校 F题,G题,I题,K题,J题
		以下题目均自己搜 F题 A序列 一开始真的没懂题目什么意思,还以为是要连续的子串,结果发现时序列,简直智障,知道题意之后,好久没搞LIS,有点忘了,复习一波以后,直接双向LIS,处理处两个数组L和R ... 
- HDU 5923 Prediction(2016 CCPC东北地区大学生程序设计竞赛 Problem B,并查集)
		题目链接 2016 CCPC东北地区大学生程序设计竞赛 B题 题意 给定一个无向图和一棵树,树上的每个结点对应无向图中的一条边,现在给出$q$个询问, 每次选定树中的一个点集,然后真正被选上的是这 ... 
- 【ZOJ】3785 What day is that day?  ——浅谈KMP在ACM竞赛中的暴力打表找规律中的应用
		转载请声明出处:http://www.cnblogs.com/kevince/p/3887827.html ——By Kevince 首先声明一下,这里的规律指的是循环,即找到最小循环周期. 这 ... 
随机推荐
- Vuex实践
			本文来自网易云社区 作者:刘凌阳 前言 2017年对于Vue注定是不平凡的一年.凭借着自身简介.轻量.快速等特点,Vue俨然成为最火的前端MVVM开发框架.随着Vue2.0的release,越来越多的 ... 
- 25、react入门教程
			0. React介绍 0.1 什么是React? React(有时称为React.js 或ReactJS)是一个为数据提供渲染HTML视图的开源JavaScript库. 它由FaceBook.Inst ... 
- Eclipse+APKTool动态调试APK
			1. 所需工具 Eclipse. Apktool v2.0.6. 安卓SDK工具. 2. 重编译APK apktool d -d -o test test.apk 此时当前test目录下就是apkto ... 
- ProxySQL初体验
			Preface As we all know,it's a common sense that separate reading and writing operations can ... 
- LeetCode 3——无重复字符的最长子串
			1. 题目 2. 解答 2.1. 方法一 我们从前往后遍历字符串,start 代表最长子串的起始位置,一开始设置为零. 如果没有遇到重复字符,则更新子串的长度,向后遍历. 如果遇到重复字符时,则更新字 ... 
- ubuntu 和 centOS 的apache设置
			更改ubuntu的网站访问根目录: 在sudo gedit /etc/apache2/sites-enabled/000-default,把 DocumentRoot /var/www #这 ... 
- 自定义Json格式
			老铁们都知道,一般的json格式就是键值对格式,在一些特定的框架或者系统中,会用到自定义格式的json文件,假设我们要得到的特定格式json格式如下: {"A":"2&q ... 
- 基于网络的 Red Hat 无人值守安装
			基于网络的 Red Hat 无人值守安装 本文介绍了 PC 平台上的一种快速 Red Hat Linux 安装方案.它具有很高的自动化程度--用户只需手工启动机器并选择从网络启动,就可以完成整个安装过 ... 
- jdbc连接oracle语法
			public class LangDemo { public static void main(String[] args) throws Exception{ try { //加载驱动 Class. ... 
- 【bzoj3626】[LNOI2014]LCA  树链剖分+线段树
			题目描述 给出一个n个节点的有根树(编号为0到n-1,根节点为0).一个点的深度定义为这个节点到根的距离+1.设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先.有q次询问,每次询 ... 
