OJ_1125

来源:互联网 发布:sketchup mac版界面 编辑:程序博客网 时间:2024/06/06 00:44
#include <iostream>#include <string>using namespace std;const int K=9;bool candiv(int n,string s){     int inc=0;     for(int i=0;i<s.size();i++)     {             int temp=s[i]-'0'+inc*10;             inc=temp%n;                  }     if(inc==0)return true;     return false; }void func(){     string s;     while(cin>>s)     {                  if(s=="-1")break;                  int a[K+1];                                    for(int i=2;i<=K;i++)                  {                          if(candiv(i,s))                                         a[i]=i;                          else                                         a[i]=-1;                  }                  int count=0;                  for(int i=2;i<=K;i++)                  {                          if(a[i]==i)                                     if(count==0)                                     {                                                 count++;                                                 cout<<a[i];                                     }                                     else{                                          cout<<" "<<a[i];                                     }                  }                  if(count)                  cout<<endl;                  else                  cout<<"none"<<endl;     }     }int main(int argc, char *argv[]){    //printf("Hello, world\n");func();return 0;}

大数除法,只用考虑能否整除

题目描述:

已知正整数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"

样例输入:
307213-1
样例输出:
2 3 5 62 3 4 6 8 9none
提示:

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


0 0
原创粉丝点击