• 九度oj 题目1125:大整数的因子


    题目描述:

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

    输入:

    若干个非负整数c,c的位数<=30
    每行一个c,当c=-1时中止
    (不要对-1进行计算!)

    输出:

    每一个c的结果占一行
    1) 若存在满足 c%k == 0 的k,输出所有这样的k,中间用空格隔开,最后一个k后面没有空格。
    2) 若没有这样的k则输出"none"

    样例输入:
    30
    72
    13
    -1
    样例输出:
    2 3 5 6
    2 3 4 6 8 9
    none
    提示:

    注意整数溢出问题
    不要对-1进行计算

     1 #include <cstdio>
     2 #include <string>
     3 #include <cstring>
     4 #define MAX 33
     5 
     6 char c[MAX];
     7 
     8 bool div(int k) {
     9     int ci  = 0;
    10     for(int i = 0; i < strlen(c); i++) {
    11         int ben = ci * 10 + (c[i] - '0');
    12         ci = ben % k;
    13     }
    14     if(ci == 0) {
    15         return true;
    16     }
    17     return false;
    18 
    19 }
    20 
    21 int main(int argc, char const *argv[])
    22 {
    23     while(scanf("%s",c) != EOF && strcmp(c,"-1") != 0) {
    24         bool isBegin = false;
    25         bool isFind = false;
    26         for(int i = 2; i <= 9; i++) {
    27             if(div(i)) {
    28                 isFind = true;
    29                 if(!isBegin) {
    30                     printf("%d",i);
    31                     isBegin = true;
    32                 }
    33                 else {
    34                     printf(" %d",i);
    35                 }
    36                 
    37             }
    38         }
    39         if(!isFind) {
    40             puts("none");
    41         }
    42         else {
    43             puts("");
    44         }
    45         
    46     }
    47     return 0;
    48 }
  • 相关阅读:
    Array.from和 map的相同用法
    js复制数组的各种方式
    set集合转数组的两种方法
    关于set集合去重的问题
    Object.is判断两个值是否相等
    数组排序
    函数默认值的取值
    标准索引
    pgsql update left join
    linux pgsql
  • 原文地址:https://www.cnblogs.com/jasonJie/p/5740023.html
Copyright © 2020-2023  润新知