Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >素数相关问题练习 C++

素数相关问题练习 C++

作者头像
kalifa_lau
发布于 2018-04-26 06:56:03
发布于 2018-04-26 06:56:03
69100
代码可运行
举报
文章被收录于专栏:kalifaの日々kalifaの日々
运行总次数:0
代码可运行
辗转相除
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <iostream>
using namespace std;

int gcb(int a,int b)
{
    if(b==0) return a;
    return gcb(b,a%b);
}

int main()
{
    int a,b;
    cin>>a>>b;
    cout<<gcb(a,b);
}
素数判定
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
#include <math.h>
#include <vector>
using namespace std;

bool is_prime(int x)
{
    for(int i=2;i*i<=n;i++)
    {
        if(x%i==0)
        {
            return false;
        }
    }
    return x!=1;
}

vector<int> divisor(int x)
{
    vector<int> res;
    float sq = sqrt(x);
    for(int i=2;i<=int(sq);i++)
    {
        if(x%i==0)
        {
            res.push_back(i);
            if(i!=x/i) res.push_back(x/i);
        }
    }
    return res;
}

map<int,int> prime_factor(int x)
{
    map<int,int> res;
    for(int i=2;i*i<x;i++)
    {
        while(n%i==0)
        {
            ++res[i];
            x /= i;
        }

    }
    if(x!=1) res[n]=1;
    return res;
}

int main()
{
    printf("%d\n",is_prime(0));
    printf("%d\n",is_prime(1));
    printf("%d\n",is_prime(8));
    printf("%d\n",is_prime(7));
}
埃氏筛法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
#include<iostream>
#include <algorithm>
using namespace std;
const int MAX=1000000;
int arr[MAX];

int solve(int n)
{
    cout<<"solve"<<endl;
    int res=0;

    fill(arr,arr+n,0);
    cout<<"fill done"<<endl;
    for(int i=2;i<n;i++)
    {
        if(!arr[i])
        {
            cout<<"arr["<<i<<"]"<<endl;
            int flag = 0;
            for(int j=2;j*j<=i;j++)
            {
                if(i%j==0)
                {
                    flag = 1;
                    break;
                }
            }
            if(flag==0)
            {
                res++;
                for(int p=1;p*i<=n;p++)
                {
                    arr[p*i]=1;
                }
            }
        }
    }
    return res;
}

int main()
{
    printf("%d\n",solve(15));
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.12.26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
不得不说,牛客多校题目质量确实是不错的
题意:定义 表示与结点 相邻的点集,给出一列边。要求支持下面两个操作:
ACM算法日常
2021/12/06
4260
HPU personal-training 2
A - Kefa and Park 题意:就是一棵树,然后本人的家在根上,餐厅在叶子节点上。然后在前往叶子结点的餐厅的时候,途中的结点上有猫,而这个人特别怕毛,如果猫超过M只,那么他就不会走这条路!最终要你输出他能去餐厅的数量,也就是多少条路!
杨鹏伟
2020/09/11
3080
Codeforces Round 565 A到E
题意:如果ai是素数,那么b中附加的就是第ai个素数,否则就是ai的最大公因数在bi中,
用户2965768
2019/07/03
3590
【C++】B2085 第 n 小的质数
这道题目来自洛谷平台,名为“B2085 第 n 小的质数”,请系统在此总结全问题。
CSDN-Z
2025/01/03
990
【C++】B2085 第 n 小的质数
C语言素数优化方法
题目:求1~N范围中的素数。k为当前数值,j为被除数 素数:一个大于1的自然数中,除了1和本身外无法整除其余数的数值。
CtrlX
2022/11/16
3.2K0
河工院首届工业设计大赛程序组(选拔赛)题解
本题为简单的01背包,不过是需要算一下超重多少,但是最多超重100%,那么代码就如下。
浪漫主义狗
2024/04/28
1020
#628 DIV2 题解
组样例,每组给一个和个数 。将同一个序列重复次得到一个新序列,问可以从新序列中严格最长上升子序列长度为多少。
ACM算法日常
2020/04/08
2520
#628 DIV2 题解
1.C与C++
使用c++中的标准库类型vector可以很轻松的完成任务。 不需要管理内存分配,对不同的类型都可以处理
小飞侠xp
2018/12/14
1.2K0
1.C与C++
天梯赛模拟训练【3】
思路:一个从前往后遍历,一个从后往前,要设置一个flag,表示当前这个人是否匹配成功,当都匹配成功后就break。
杨鹏伟
2020/11/12
5830
2019年安徽大学ACM/ICPC实验室新生赛
A.素数分布函数\pi (n)π(n)表示小于或等于n的素数的数目。例如\pi (10)=4π(10)=4(2,3,5,7是素数)。这个函数涉及到许多高等数论的内容,甚至和黎曼猜想挂钩,目前还有很多数学家正在不断探索其中的奥秘。千里之行始于足下,现在你开始关心一个问题:在正整数域中素数的分布是怎么样的。为了探索这个问题,你需要计算出一些\pi (n)π(n)的值。
杨鹏伟
2020/09/11
6660
【小码匠自习室】重做ABC250-D, 我无力反抗
Let us regard an integer k as "similar to 250" if the following condition is satisfied:
小码匠
2022/08/08
4530
填坑-回溯-预习 之 素数大总结
B - 素数判定 HDU - 2012 对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数。
杨鹏伟
2020/09/11
4110
SDUT 2021 Winter Individual Contest – H
有n个敌人,k个士兵,告诉你每个士兵最大可以战斗的时间,让你安排士兵和敌人战斗,战斗期间可以随意切换战斗对象,问你最多可以让所有敌人同时保持战斗多长时间。
Here_SDUT
2022/08/08
2770
【队伍训练3】Codeforces Round #661 (Div. 3)
A 签到 #include<bits/stdc++.h> #define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); using namespace std; int a[105]; int main(){ ios int n,t; cin>>t; while(t--){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i];
杨鹏伟
2020/09/10
3340
18级个人训练赛--2
B --Consecutive Integers AtCoder 5037 思路:水题,签到~
杨鹏伟
2020/09/11
3160
C/CPP基础PTA习题及分析
已知素数序列为2、3、5、7、11、13、17、19、23、29……,即素数的第一个是2,第二个是3,第三个是5……那么,随便挑一个数,若是素数,能确定是第几个素数吗?如果不是素数,则输出0。
CtrlX
2022/11/14
1.5K0
C/CPP基础PTA习题及分析
已知素数序列为2、3、5、7、11、13、17、19、23、29……,即素数的第一个是2,第二个是3,第三个是5……那么,随便挑一个数,若是素数,能确定是第几个素数吗?如果不是素数,则输出0。
CtrlX
2023/03/21
7140
牛客周赛64(C++实现)
小红在判题的时候,经常发现选手把"Yes"输出成"YES"或者"yes",她希望写一个spj(special judge)来判断选手是否输出了"Yes"。你能帮帮她吗?
Yui_
2024/10/22
1280
牛客周赛64(C++实现)
经典例题(一)——经典例题的归纳总结。
这里,我们要先了解素数的定义,素数也叫质数 ,即在正整数中,除了1与本身之外没有其他约数的数(1除外)。 方法一: 也就是说,这个数只能被1和它本身整除。了解这一点后我们开始入手写代码,在这里我们最容易想到的方法就是试除法,即从2开始,不断地对那个数进行试除,假设这个数是n,直到试除到n(不包含n)为止,如果没有出现可以被整除的数,则n就是素数。
诺诺的包包
2023/02/17
5450
经典例题(一)——经典例题的归纳总结。
10min快速回顾C++语法(三)
⭐写在前面的话:本系列文章旨在短时间内回顾C/C++语法中的重点与易错点,巩固算法竞赛与写题过程中常用的语法知识,精准地解决学过但有遗忘的情况,为算法刷题打下坚实的基础。
timerring
2022/09/21
4080
相关推荐
不得不说,牛客多校题目质量确实是不错的
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验