当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 判断素数的方法

判断素数的方法

2019年01月10日  | 移动技术网IT编程  | 我要评论

杭美玉,6岁裸娃街头游荡,北京猎头网

素数

不知道写些什么,顺便熟悉下markdown的语法,就写个判断素数的算法吧,太菜了,见谅

最朴素的做法

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int x;
    int flag = 0;
    cin >> x;
    for(int i=2;i<x;i++)
        if (x%i == 0)
        {
            flag = 1;
            break;
        }
    if (flag == 1)
        cout << "0";//不是素数
    else
        cout << "1";
}





这是最朴素的算法了,正常人都会做

那么怎么优化呢,仔细思考会发现根本不用遍历到本数字,好像到$ \frac 1 2 $就行了,那么代码就是

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int x;
    int flag = 0;
    cin >> x;
    for(int i=2;i<=x/2;i++)
        if (x%i == 0)
        {
            flag = 1;
            break;
        }
    if (flag == 1)
        cout << "0";//不是素数
    else
        cout << "1";
}

貌似还可以优化,仔细算算好像只需要到 $ \sqrt x $ 就行惹,所以循环就里面 $ \frac 1 2 $ 改成 $ \sqrt x $ 就行了,很简单

暂时先记这么多惹,熟悉熟悉..

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网