|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- int main()
- {
- ll num =600851475143;
- ll maxv =0;
- for(ll i =2;i<int(sqrt(num))+1;++i){
- while(num%i==0){
- num/=i;
- maxv = max(maxv,i);
- }
- }
- cout<<maxv<<endl;
- }
复制代码
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- int main()
- {
- ll num =600851475143;
- ll sc =int(sqrt(num))+1;
- ll maxv =0;
- for(ll i =2;i<sc;++i){
- while(num%i==0){
- num/=i;
- maxv = max(maxv,i);
- }
- }
- cout<<maxv<<endl;
- }
复制代码
为什么第二段输出的才是正确答案呢?第一段和第二段不是一个意思吗?
- #include <stdio.h>
- int main (){
- int i,j,k;
- for(i=0;i<i+2;i++){
- printf("%d ",i);
- }
- }
复制代码
有没有点这个意思?
i<int(sqrt(num))+1;
num/=i;
|
|