1. 程式人生 > >牛客網——大整數的因子

牛客網——大整數的因子

題目描述

已知正整數k滿足2<=k<=9,現給出長度最大為30位的十進位制非負整數c,求所有能整除c的k.

輸入描述:

若干個非負整數c,c的位數<=30
每行一個c

輸出描述:

每一個c的結果佔一行
1) 若存在滿足 c%k == 0 的k,輸出所有這樣的k,中間用空格隔開,最後一個k後面沒有空格。
2) 若沒有這樣的k則輸出"none"

注意整數溢位問題
不要對-1進行計算
連結:https://www.nowcoder.com/questionTerminal/3d6cee12fbf54ea99bb165cbaba5823d
來源:牛客網

//參考大數取餘演算法http://blog.csdn.net/qq_32779119/article/details/79513480 #include <cstdio> #include <cstring> //求BigNum對n的餘數 int Mod(char BigNum[], int n){ int ans = 0; for(int i = 0; i < strlen(BigNum); i++) ans = (ans * 10 + (BigNum[i] - '0')) % n; return ans; } int main() {
//freopen("data.txt", "r", stdin); char BigNum[31] = {0}; while(scanf("%s", BigNum) != EOF){ int i, count; for(i = 2, count = 0; i <= 9; i++){ if(Mod(BigNum, i) == 0 && count > 0) printf(" %d", i); if(Mod(BigNum, i) == 0 && count == 0
){ printf("%d", i); count++; } } if(count == 0) printf("none"); printf("\n"); } return 0; }