首页 > 其他 > 详细

B. Divisor Subtraction

时间:2018-11-13 13:52:59      阅读:155      评论:0      收藏:0      [点我收藏+]

链接

[http://codeforces.com/contest/1076/problem/B]

题意

给你一个小于1e10的n,进行下面的运算,n==0 结束,否则n-最小质因子,问你进行多少步

分析

显然n为偶数时,,就会一直-2,不是偶数的话可能是合数或者素数
只需要找根号n内就可以找到合数的最小质因子,否则就是质数
一个奇数-一个奇数一定是偶数,看代码吧

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main(){
    ll n;
    while(cin>>n){
        bool flag=0;
        ll i;
        for(i=2;i*i<=n;i++)
            if(n%i==0){
                flag=1;
                break;
            }
    if(flag)    cout<<(n-i)/2+1<<endl;
    else cout<<1<<endl;
    }
    return 0;
}

B. Divisor Subtraction

原文:https://www.cnblogs.com/mch5201314/p/9951544.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!