大整数的因子

简介: 总时间限制: 1000ms 内存限制: 65536kB描述已知正整数k满足2

总时间限制: 1000ms 内存限制: 65536kB

描述

已知正整数k满足2<=k<=9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k。

输入一个非负整数c,c的位数<=30。输出若存在满足 c%k == 0 的k,从小到大输出所有这样的k,相邻两个数之间用单个空格隔开;若没有这样的k,则输出"none"。样例输入

30

样例输出

2 3 5 6 
 1 #include <stdio.h>
 2 int main(int argc, char *argv[])
 3 {
 4     char cTemp[40];
 5     int c[40],b[10]={0},i,k,len;
 6     int m;
 7     int s,j;
 8     
 9     scanf("%s",cTemp);
10     i=0;
11     while(cTemp[i]!='\0')
12     {
13         c[i]=cTemp[i]-'0';
14         i++;
15     }
16     
17     len=i;
18     for(k=2;k<=9;k++)
19     {
20         if(k==2&&c[len-1]%2==0) {  b[k]=1; continue; }
21         else if(k==3)
22         {
23             s=0;
24             for(j=0;j<len;j++) s=s+c[j];
25             if(s%3==0) {  b[k]=1; continue; }
26         }
27         else if(k==5&&c[len-1]%5==0)  {  b[k]=1; continue;  }
28         else
29         {
30             m=c[0]%k;
31             i=1;
32             while(i<len)
33             {
34                 m=m*10+c[i];
35                 m=m%k;
36                 i++;
37             }
38             if(m==0) {  b[k]=1; continue;  }
39         }
40     }
41     
42     s=0;
43     for(k=2;k<=9;k++)
44     {
45         if(b[k]==1) { printf("%d ",k); s++;}
46     }
47     if(s==0) printf("none");
48     printf("\n");
49     return 0;
50 }

 

相关文章
|
7月前
大整数的因子(利用求余)
大整数的因子(利用求余)
wustojc2003求整数均值
wustojc2003求整数均值
58 0
|
算法
找出三个最大值求乘积
找出三个最大值求乘积
87 0
|
C++
C++ 超大整数相加、相乘的精确求解,以及10000的阶乘
C++ 超大整数相加、相乘的精确求解,以及10000的阶乘
123 0
|
算法 测试技术 C++
基于C++实现的大整数计算
基于C++实现的大整数计算
160 0
基于C++实现的大整数计算
C/C++编程题之质数因子
C/C++编程题之质数因子
《算法零基础100讲》(第1讲) 幂和对数
《算法零基础100讲》(第1讲) 幂和对数
《算法零基础100讲》(第1讲) 幂和对数
获取一个数的各个质数因子
这个题用到了题目的知识点,记录一下吧。 假设s和m初始化,s = "a"; m = s; 再定义两种操作,第一种操作: m = s; s = s + s; 第二种操作: s = s + m; 求最小的操作步骤数,可以将...
2083 0