设为首页 加入收藏

TOP

判断素数的方法
2019-01-10 00:08:51 】 浏览:36
Tags:判断 素数 方法

素数

不知道写些什么,顺便熟悉下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 $ 就行了,很简单

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


编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇剑指Offer整理笔记 下一篇codevs1735 方程的解数(meet in t..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(214) }