问题标题: 酷町堂:1439

0
0
已解决
黄子澄
黄子澄
中级天翼
中级天翼

1439   质因数分解

题目描述 Description

已知正整数n是两个不同的质数的乘积,试求出两者中较大的那个质数。

输入描述 Input Description

输入格式:
输入只有一行,包含一个正整数n。

输出描述 Output Description

输出格式:
输出只有一行,包含一个正整数p,即较大的那个质数。

样例输入 Sample Input

 

输入样例#1:
21

样例输出 Sample Output

 

输出样例#1:
7

1439   质因数分解

 

Wrong Answer:50分

 

 

黄子澄的测评结果:

 

测试点#1测评结果 : Accepted时间 : 0ms
测试点#2测评结果 : Wrong Answer时间 : 0ms偷看一下数据测试点#3测评结果 : Accepted时间 : 0ms
测试点#4测评结果 : Accepted时间 : 0ms
测试点#5测评结果 : Accepted时间 : 0ms
测试点#6测评结果 : Time Limit Exceeded时间 : 1976ms偷看一下数据测试点#7测评结果 : Accepted时间 : 0ms
测试点#8测评结果 : Time Limit Exceeded时间 : 1988ms偷看一下数据测试点#9测评结果 : Time Limit Exceeded时间 : 1988ms偷看一下数据测试点#10测评结果 : Time Limit Exceeded时间 : 2016ms偷看一下数据

 

我的提交(cpp):

#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
long long a[100000];
int main(){
    long long n,b=0,d=-1;
    bool c;
    cin>>n;
    for(int i=1;i<=n;i++){
        if(n%i==0){
            a[b++]=i;
        }
    }
    for(int i=0;i<b-1;i++){
        c=1;
        for(int j=2;j*j<=a[i];j++){
            if(a[i]%j==0){
                c=0;
                break;
            }
            if(c&&d<a[i]){
                d=a[i];
            }
        }
    }
    cout<<d;
    return 0;
}

我不要代码,只要思路。


0
已采纳
朱敏行
朱敏行
中级守护
中级守护

这位同学,因规则原因,我只能告诉你思路惹 qwq 很抱歉啦

1. 先找因数,使用循环来找。 嘻嘻哈哈

2. 会素数的话就可以找质数了。 

    不会请看:

    我只是提供素数 跪求别举报

    (bool ff)//记得添加哦

       ff=true;//默认此为素数

       for(int p=2;p*p<=i;p++)

                if(i%p==0)//如发现能整除,说明不是素数

                {

                            ff=false;//改变状态,不是素数。

                            break; //跳出循环   

                   }//同学,这是判断素数(质数)的核心代码,解释的很详细惹

3. 比较最大或最小 //这个就两个,很简单的/-w-\

 

求采纳

祝你AC

0
宣海宁
宣海宁
中级光能
中级光能

                        思路

输入——》找因数——》质数——》最大

这个难度3,可以试着偏分哦!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

也不求采纳。

我要回答