码迷,mamicode.com
首页 > 编程语言 > 详细

题目1125:大整数的因子 C++/Java

时间:2015-04-28 09:49:43      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:online judge   九度   编程   c++   java   

题目描述:

已知正整数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<iostream>
#include<string>
#include<vector>
using namespace std;
 
int main()
{
    string s;
    while(cin>>s&&s!="-1")
    {
        vector<int> ivec;
        for(int n=2;n<=9;++n)
        {
            int index=0;
            int temp;
            for(int i=0;i<s.size();++i)
            {
                temp=index*10+(s[i]-'0');
                index=temp%n;
            }
            if(index==0)
                ivec.push_back(n);
        }
        if(ivec.empty())
            cout<<"none"<<endl;
        else
        {
            cout<<ivec[0];
            for(int i=1;i<ivec.size();++i)
                cout<<" "<<ivec[i];
            cout<<endl;
        }
    }
    return 0;
}
/**************************************************************
    Problem: 1125
    User: Carvin
    Language: C++
    Result: Accepted
    Time:150 ms
    Memory:1520 kb
****************************************************************/

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<len;i++)
				{
					temp=index*10+(num[i]-'0');
					index=temp%k;
				}
				if(index==0)
				{
					//array[j++]=k;
					if(k==2)
						System.out.print(k);
					else
						System.out.print(" "+k);
					flag=true;
				}
			}
			if(!flag)
				System.out.print("none");	
			System.out.println();
		}
	}
}
/**************************************************************
    Problem: 1125
    User: Carvin
    Language: Java
    Result: Accepted
    Time:150 ms
    Memory:1520 kb
****************************************************************/



题目1125:大整数的因子 C++/Java

标签:online judge   九度   编程   c++   java   

原文地址:http://blog.csdn.net/carvin_zh/article/details/45318233

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!