中级天翼
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