大整数的因子(信息学奥赛一本通-T1171)
生活随笔
收集整理的這篇文章主要介紹了
大整数的因子(信息学奥赛一本通-T1171)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目描述】
已知正整數k滿足2≤k≤9,現給出長度最大為30位的十進制非負整數c,求所有能整除c的k。
【輸入】
一個非負整數c,c的位數≤30。
【輸出】
若存在滿足 c%k == 0 的k,從小到大輸出所有這樣的k,相鄰兩個數之間用單個空格隔開;若沒有這樣的k,則輸出"none"。
【輸入樣例】
30
【輸出樣例】
2 3 5 6
【源程序】
#include<iostream> #include<cstring> using namespace std; int a[50],b[50]; char str[50]; int divide(int x)//高精除 {int i=a[0],res=0;while(i>0){res*=10;res+=a[i];res%=x;i--;}return res; } int main() {int len;bool flag=false;int i;cin>>str;len=strlen(str);int k=1;for(i=len-1;i>=0;i--)//數據處理{a[k]=str[i]-'0';k++;}a[0]=len;for(i=2;i<=9;i++){if(divide(i)==false)//判斷是否能整除,可以就輸出{flag=true;cout<<i<<" ";}}if(flag==false)cout<<"none"<<endl;return 0; }總結
以上是生活随笔為你收集整理的大整数的因子(信息学奥赛一本通-T1171)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字符串匹配问题(信息学奥赛一本通-T13
- 下一篇: Crossing River(信息学奥赛