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 首先声明一下,这里的规律指的是循环,即找到最小循环周期. 这 ...
 
随机推荐
- 为什么说Objective-C是一门动态的语言?
			
object-c类的类型和数据变量的类型都是在运行是确定的,而不是在编译时确定.例如:多态特性,我们可以使用父类对象来指向子类对象,并且可以用来调用子类的方法.运行时(runtime)特性,我们可以动 ...
 - react实现网站换肤功能
			
一.目标 提供几种主题色给用户选择,然后根据用户的选择改变应用的主题色: 二.实现原理 1.准备不同主题色的样式文件: 2.将用户的选择记录在本地缓存中: 3.每次进入应用时,读取缓存 ...
 - Visual Studio 2017离线安装包
			
点击下载
 - 在 C/C++ 中使用 TensorFlow 预训练好的模型—— 间接调用 Python 实现
			
现在的深度学习框架一般都是基于 Python 来实现,构建.训练.保存和调用模型都可以很容易地在 Python 下完成.但有时候,我们在实际应用这些模型的时候可能需要在其他编程语言下进行,本文将通过 ...
 - Hyperledger02
			
docker 思想 模块化: 集装箱 标准化: 运输标准化, 存储方式标准化,API接口的标准化 安全性: 隔离 docker解决什么问题 devops 我这程序程序没问题啊 系统好卡.哪个程序死循环 ...
 - 团队作业4——第一次项目冲刺(Alpha版本)-第二篇
			
项目冲刺——第二阶段 度过了敏捷冲刺,各个成员积极汇报各自的工作.好了,着手下一步规划! Mission 团队成员 任务 郭达 实现PHP后台的答题判分查看正确率 刘德培 编写博客 石浩洋 实现 ...
 - lintcode-87-删除二叉查找树的节点
			
87-删除二叉查找树的节点 给定一棵具有不同节点值的二叉查找树,删除树中与给定值相同的节点.如果树中没有相同值的节点,就不做任何处理.你应该保证处理之后的树仍是二叉查找树. 样例 给出如下二叉查找树: ...
 - PAT 1084 外观数列
			
https://pintia.cn/problem-sets/994805260223102976/problems/994805260583813120 外观数列是指具有以下特点的整数序列: d, ...
 - JMS实战——ActiveMQ实现Pub-Sub
			
前言 上篇博客<JMS实战--ActiveMQ>介绍了ActiveMQ的安装,并实现了简单的PTP模型.这篇博客我们来看一下Pub-Sub模型,之后来总结一下JMS. 实现 项目结构 其中 ...
 - Java基础——IO
			
一.概述 I/O,Input/Output输入输出.输入机制比如读取文件数据.用户键盘输入等,输出,比如将数据输出到磁盘等. Java的IO是以流(Stream)为基础的. 流的叫法十分形象,你可以想 ...