竞赛
考级
本题照样是数学题,首先要做这题,要明白两个词,因数和质数,我们都知道,因数因数=积,因数的意义就很清楚了,举个例子,12的因数有1,12,2,6,3,4(112=12,26=12,34=12)。至于质数,就是除了1和自己本身,没别的因数,比如3,5,7。注意,1既不是质数,也不是合数(至少三个因数)。理解了这些,恭喜你,你会做本题了,首先要用循环考虑一个数是不是这个数的因数,很简单,用输入的数%循环的变量,看看结果是否等于0,如果是,说明这个数是输入数的因数,至于判断质数,就是不断的用循环变量%它,必须都不等于0(除了它本身,还有一,当然可以把循环开头定义成2,而不是1)。另外,就是要输出大的那一个,很简单,反着求因数就行。 上代码: 感觉前面写的很详细的,不懂的问问幼儿园小朋友
hutaoQWQ
法兰西玫瑰
TX_Bernie
#include<bits/stdc++.h> using namespace std; int primeFunction(int n_prime){ for(int i=2;i*i<=n_prime;i++){ if(n_prime%i0){ return false; } } return true; } int main() { int n,b=0; cin>>n; for(int a=1;a<=n;a++){ if(n%a0){ b=n/a; if(primeFunction(a)&&(primeFunction(b))){ cout<<b; return 0; } } } return 0; }
玩小云
很水的普及/提高- 时间复杂度O(n^2) 第一次提交用暴力枚举法居然没有tle ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 首先看数据范围 好水啊 这说明暴力枚举肯定能过; ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 思路:思路: 思路: 如此之水的数据那必须得用暴力 首先 定义变量找出n的第一个质因数 本题数据极水,所以可以直接暴力枚举。 题干认为n只有一组质因数,所以找出n的其中一个质因数之后就只需要n➗其中一个质因数后就可以判断的得数是否为质数。查找第一个质因数的代码: 而当我们拥有第一个质因数的时候(即f = 0),就可以写第二个判断套循环:判断n / i是否是一个质数。同样使用循环遍历小于j大于等于2的所有数判断是否为质数。该段代码如下: 最后不要忘记continue跳出本次循环。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 完整代码如下: 感觉要的时间有点长,所以还是别贴这个了吧 本代码已做防抄袭处理:)(共四处)
范特东
AC代码
荷取青
晚夜海棠(微雨)
#include<ios> int n,i=2;int main(){scanf("%d",&n);while(n%i)i++;printf("%d",n/i);}
史莱克七怪
章静远
本题考数学。 首先要知道唯一分解定理:一个数能且只能分解为一组质数的乘积。可知,若输入的数满足题目条件,他就只能分解为两个质数的乘积。所以在比他小且大于1的自然数中,只有那两个数能整除它,之间不可能再有任何合数或质数能整除它了,因为最小的能整除它的合数已经是他本身了。
AC君
空降坐标:CP002603 来源:NOIP2012 普及组 请看代码 极致优化
LiWei
LOVEKlee1314
#include<bits/stdc++.h> using namespace std; int main(){ int a; cin >> a; for(int i = 2;i < a;i++){ if(a % i == 0){ cout << a / i; break; } } return 0; }
DARK SPECTRE
这里要注意千万不要直接求最大的质因数,这样测试样例会有时间超标的结果。 要利用因数的特点:因数都是一对一对出现的,所以可以求那个较小的质因数。
毛奕程
#include<bits/stdc++.h> using namespace std; int main(){ int n;cin>>n; for(int i=2;i<=n;++i){ if(n%i==0){ cout<<n/i; return 0; } } return 0; }
jodiojostar