大整数的因子

作者: 故梦_三笙 | 来源:发表于2019-05-08 09:32 被阅读4次
    image.png
    这道题的难点是大精度整数的除法运算,一般的想法肯定是不好实施,所以还是用之前学到的万能进制转换函数,然后判断temp[0]是否为0。如果万能进制转换函数不太懂的话,请看我的文章十进制转换为二进制的代码。下面是这道题的代码:
    #include<stdio.h>
    #include<string.h>
    int a[31],temp[1000];
    void conversion(int d[],int data[],int n,int x,int y){
        int size=0;
        for(int i=0;i<n;){
            int k=0;
            for(int j=i;j<n;j++){
                int t=(d[j]+k*x)%y;
                d[j]=(d[j]+k*x)/y;
                k=t;
            }
            data[size++]=k;
            while(d[i]==0) i++;
        }
    }
    /*bool judge()
    {
        if(temp[0]==0)
            return true;
         return false;
    }*/
    int main()
    {
        char s[30];
        while(scanf("%s",s)!=EOF)
        {
            int num=0;
            int len=strlen(s);
            int i;
            for(i=0;i<len;i++)
            {
                a[i]=s[i]-'0';
            }
            for(i=2;i<=9;i++)
            {
                int b[31];
                for(int j=0;j<len;j++)
                    b[j]=a[j];
                temp[1000]={0};
                conversion(b,temp,len,10,i);
                if(temp[0]==0)
                {
                    num++;
                    printf("%d ",i);
                }
            }
            if(num==0)
                printf("none");
            printf("\n");
        }
        return 0;
    }
    

    另,今天早上想听一首歌,忘记名字了,打开网易云的推荐歌单,第一首就是这首歌,网易云音乐的推荐算法太给力了!对了,是粥大爷的出山。

    相关文章

      网友评论

        本文标题:大整数的因子

        本文链接:https://www.haomeiwen.com/subject/bampoqtx.html