1439 质因数分解
题目描述 Description
已知正整数n是两个不同的质数的乘积,试求出两者中较大的那个质数。
输入描述 Input Description
输入格式:
输入只有一行,包含一个正整数n。
输出描述 Output Description
输出格式:
输出只有一行,包含一个正整数p,即较大的那个质数。
样例输入 Sample Input
输入样例#1:
21
样例输出 Sample Output
输出样例#1:
7
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;
}
我不要代码,只要思路。
这位同学,因规则原因,我只能告诉你思路惹 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
