杭电acm1339

http://acm.hdu.edu.cn/showproblem.php?pid=1339

把2的n次方打表,然后将输入的n依次除以这些数,知道可以整除,输出可以整除的元素的位置的排列,极为p,而n除以这个2^p就是o了

逐个查找

View Code
 1 #include<stdio.h>
 2 int main()
 3 {
 4    int a[100],i,size,n,d,o;
 5    a[0]=1;
 6    for(i=1;;i++)
 7    {
 8       if(a[i-1]>1000000)
 9       {
10           size=i-1;
11           break;
12       }
13       a[i]=a[i-1]*2;
14    }
15    scanf("%d",&d);
16     while(d--)
17     {
18         scanf("%d",&n);
19         for(i=size;i>=1;i--)
20         {
21             if(n%a[i]==0)
22                break;
23         }
24         printf("%d %d\n",n/a[i],i);
25     }
26     return 0;
27 }

 

posted @ 2013-04-17 21:38  执着追求的IT小小鸟  阅读(155)  评论(0编辑  收藏  举报