| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 315 人关注过本帖
标题:错误类型,Compilation Error 编译错误
只看楼主 加入收藏
程序设计语言
Rank: 2
来 自:辽宁
等 级:论坛游民
帖 子:4
专家分:10
注 册:2013-11-21
收藏
 问题点数:0 回复次数:0 
错误类型,Compilation Error 编译错误
这有问题吗?
#include <iostream>
#include<cmath>
using namespace std;

bool judge (int n);
int getx (int n);
int getk (int n);

int main ()
{
    int n;
    while (cin>>n)
    {
        if(n<0||n>pow(10,8))
        {
            exit(1);
        }
        else if(n==0)
        {
            break;
        }

        else if (judge(n))
        {
            cout<<getx(n)<<" "<<getk(n)<<endl;
        }
        else
        {
            cout<<"0 0"<<endl;
        }
    }
    return 0;
}

bool judge (int n)
{
    for (int a=sqrt(n);a>1;a--)
    {
   
        for (int i=2; pow(a,i) <=n;i++)
        {
            if ( pow(a, i)==n )
            {
                return true;
            }
        }
    }
    return 0;

}
int getx(int n)
{
    for (int a=sqrt(n);a>1;a--)
    {

        for (int i=2;pow(a, i)<=n;i++)
        {
            if (pow(a ,i)==n)
            {
                return a;
            }
        }
    }
    return 0;
}

int getk(int n)
{
    for (int a=sqrt(n);a>1;a--)
    {

        for (int i=2;pow(a, i)<=n;i++)
        {
            if (pow(a ,i)==n)
            {
                return i;
            }
        }
    }
    return 0;
}
Description:
最近Catcher对数字游戏很感兴趣,他发明了一种新的游戏,给出一个数N,问N是否能表示成某个正整数X的K次幂(K>1),N可能有多种表示方法,请找出最大的X并输出相应的K。例如 16=2^4=4^2,64=4^3=2^6=8^2则16应表示为4^2,64应表示为8^2。

Input:
每行一个正整数N(0<N<10^8),输入文件以0为结束标志。
Output:
每行有两个整数,如果能表示,则输出X K,(中间用一个空格隔开);反之,则输出0 0;
Sample Input:
5
4
16
27
0
Sample Output:
0 0
2 2
4 2
3 3
搜索更多相关主题的帖子: include 
2013-11-21 11:28
快速回复:错误类型,Compilation Error 编译错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025835 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved