| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 348 人关注过本帖
标题:急!!!!帮忙解释一下
只看楼主 加入收藏
vincent239
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-9-13
收藏
 问题点数:0 回复次数:0 
急!!!!帮忙解释一下
帮忙解释一下这个代码的意思
小弟跪谢了
#include <stdio.h>
#include <limits.h>
int main(void)
{
   int a[30], b[30], count, c=0, n, k, m, i, j, s=0, min;
   scanf("%d", &count);
   while (++c<=count)
   {
        scanf("%d%d", &k, &n);
        if ((m=k)&1) j=0;
        else
        {
            j=*b=1;
            while (!((m>>=1)&1)) ++*b;
            *a=2;
        }
        for (i=3; m>1; i+=2)
        {
            if (m%i==0)
            {
                b[j]=1;
                while ((m/=i)%i==0) b[j]++;
                a[j++]=i;
            }
        }
        min=INT_MAX;
        while (j)
        {
            for (s=0, i=a[--j]; i<=n; s+=n/i, i*=a[j]);
            if ((a[j]=s/b[j])<min) min=a[j];
        }
        printf("Scenario #%d:%d\n", c,min);
   }
   return 0;
}
搜索更多相关主题的帖子: 解释 
2010-07-01 12:39
快速回复:急!!!!帮忙解释一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.062008 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved