关闭

nyoj145 聪明的小柯

901人阅读 评论(1) 收藏 举报
分类:

聪明的小珂

时间限制:1000 ms  |           内存限制:1000 KB
难度:3
描述

    小珂是一个爱美的女孩,她有n条新项链,标号从1到n,每一条项链在颜色上都会有一些差别,n条项链依次摆放,围成一个圈。小珂每次都会从上一次选择项链的位置开始数到第k条项链,把这条项链作为今天要带的项链,每次数的方向都是一致的,现在希望你帮小珂计算出一个最大的k,满足k<=n/2的同时,使得小珂在接下来的n天中将所有的项链都刚好带了一遍。

例如 n=7,取k=3

天数  项链编号

1                      1

2                      4

3                      7

4                      3

5                      6

6                      2

7                      5

输入
第一行有一个整数 0<m<10000 表示有m组测试数据,接下来的m行每行有一个整数,表示小珂的项链个数2<=m<2^31
输出
输出m个k的值
样例输入
227
样例输出
13
代码:
#include<iostream>
using namespace std;
int pd(int n,int m)
{
    while(m)
    {
        int r;
        r=n%m;
        n=m;
        m=r;
    }
    return n;
}
int main()
{
    int m,n,i;
    cin>>m;
    while(m--)
    {
        cin>>n;
        for(i=n/2;i>0;i--)
        if(pd(n,i)==1)
        {
            cout<<i<<endl;
            break;
        }
    }
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8409次
    • 积分:219
    • 等级:
    • 排名:千里之外
    • 原创:12篇
    • 转载:8篇
    • 译文:1篇
    • 评论:1条
    文章分类
    文章存档
    最新评论