已知正整數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進行計算
C++代碼:
#include#include #include using namespace std; int main() { string s; while(cin>>s&&s!="-1") { vector ivec; for(int n=2;n<=9;++n) { int index=0; int temp; for(int i=0;i Java代碼:
import java.util.Scanner; public class Main{ public static void main(String[] args){ String str; int i,j,k; //int array[]=new int[100]; Scanner cin=new Scanner(System.in); while(cin.hasNext()){ str=cin.nextLine(); boolean flag=false; char num[]=str.toCharArray(); int len=num.length; j=0; if('-'==(num[0])) break; //System.exit(1); for(k=2;k<=9;k++) { int temp; int index=0; for(i=0;i