首页 > 其他分享 >【AcWing】866~868. 质数

【AcWing】866~868. 质数

时间:2024-09-11 15:51:16浏览次数:11  
标签:868 int 质数 namespace 866 using primes include

#include<iostream>
#include<math.h>
using namespace std;

int n;

bool is_prime(int x){
    if(x<2) return false;
    for(int i=2;i<=x / i;i++){
        if(x % i == 0) return false;
    }
    return true;
}
int main(){
    cin>>n;
    while(n--){
        int x;
        cin>>x;
        if(is_prime(x)) puts("Yes");
        else puts("No");
    }
    return 0;
}

#include<iostream>
#include<algorithm>
using namespace std;

void divide(int x){
    for(int i=2;i<=x/i;i++){
        if(x%i==0){
            int s=0;
            while(x%i==0){
                x/=i;
                s++;
            }
            cout<<i<<" "<<s<<endl;
        }
    }
    if(x>1) cout<<x<<" "<<1<<endl;//单独处理大于根号n的质因子
    cout<<endl;
}
int main(){
    int n;
    cin>>n;
    while(n--){
        int x;
        cin>>x;
        divide(x);
    }
    return 0;
}

#include<iostream>
#include<algorithm>
using namespace std;

const int N = 1e6 + 10;

int n;
int primes[N],cnt;//存质数,质数个数
bool st[N];//这个数是否被筛选过

void get_primes(int n){
    for(int i=2;i<=n;i++){
        if(!st[i]){//没被筛过,说明是质数
            primes[cnt++]=i;
        }
        for(int j=0;primes[j]<=n/i;j++){
            st[primes[j]*i]=true;//从小到大遍历的primes,每个数用最小的质因子筛去
            //在质数3加入的时候,i不会再等于2,所以不会重复删除6,2的3倍==3的2倍,每个质数删去的倍数只会>=自己的值
            if(i%primes[j]==0) break;//i是质数或合数,成立则primes是当前数的最小质因子
        }
    }
}

int main(){
    cin>>n;
    get_primes(n);
    cout<<cnt<<endl;
    return 0;
}

标签:868,int,质数,namespace,866,using,primes,include
From: https://blog.csdn.net/Wheattail/article/details/142142438

相关文章

  • springboot线上教育及评价系统-计算机毕业设计源码08666
    摘要本文介绍了一个基于SpringBoot的线上教育及评价系统。该系统旨在提供一个便捷、高效的在线教育平台,同时结合学生评价功能,为教育机构和学生提供全面的教育资源和评价反馈。通过使用SpringBoot框架和相关技术,我们设计和实现了一个用户友好的系统界面,并结合数据库管理课程......
  • 找质数完整版?(小白的练习)
    目的很简单,学到哪就稍微用一下刚学的知识,下面是我的代码(其中有些步骤可以简化,就比如在search函数中用指针没什么意义,因为我只需要return“tureorfalse”如果用指针其实是杀鸡用牛刀,不过只是练习一下学的,所以目的不同代码自然不同,欢迎指教#include#includevoidsearch(int......
  • 质数
    1.质数定义我们这样定义质数:如果自然数$p>1$的因数只有1和它本身,那么$p$是质数。不是质数,就是合数。质数有很多美妙的性质,比如:如果一个数是质数,那么它是自然数。如果一个数是质数,那么它不是合数。如果一个数是质数,那么它大于等于2。2.判断\(n\)是否为质数的方法2.1枚......
  • 经典小题——生成质数
    在写程序之前,我们先想想什么是质数1.是一个大于一的自然数2.不能被任何数整除(除了1和自身)那我们如何检测呢?可以用for循环的方法(其他也行,方法不唯一),因为不能除以自身,所以最少的结果也是2(因为自身除以自身等于一),那就可以写for(b=2;b<a/2;b++),总之我们想做好这个程序,只有创建一......
  • ESP8684 系列芯片搭载 RISCV 32 位单核处理器的极低功耗 SoC 支持(2.4 GHz WiFi) 和 B
    ESP8684系列芯片搭载RISCV32位单核处理器的极低功耗SoC支持(2.4GHzWiFi)和Bluetooth5(LE)ESP8684系列芯片搭载RISCV32位单核处理器的极低功耗SoC支持IEEE802.11b/g/n(2.4GHzWiFi)和Bluetooth5(LE)在4×4mm的QFN封装中叠封1MB、2MB或4MBf......
  • Python 判断质数的另一种方法
    质数就是大于等于2且只能被它本身及1整除的数,百度上关于质数的性质和相关的公式还有很多,不过有点高深难懂,尤其是对我这个数学不好的人来说。网上python判断质数的方法大多是下面这种:frommathimportsqrtdefis_prime(n):ifn==1: print("此数为不质数")......
  • Axure优质数据可视化大屏模板+图表组件+科技感元件
    Axure优质数据可视化大屏模板+图表组件+科技感元件Axure精心构建的数据可视化解决方案,震撼发布!我们汇集了110套顶尖大屏可视化模板,覆盖从基础监控到复杂分析的全场景需求,每套模板均经过精心设计,旨在为您的数据展示增添无限可能。此外,还配备了超过200种图表组件,包括交互式......
  • 【质数判断】给定两个数,判断这两个数是否互质?
    互质的定义两个整数,如果它们除了1以外没有其他公因数,则称这两个整数互质。输入描述输入两个数字:n,m输出描述true:表示为互质。fasle:表示不为互质。代码实现publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System......
  • 【题库】—— USACO1.5 回文质数 Prime Palindromes
    #include<bits/stdc++.h>usingnamespacestd;boolprime(intn)//处理素数//bool的取值只有true和false两种//非零值被转为true,零被转为false{if(n<=1) returnfalse;for(inti=2;i<=sqrt(n);i++) if(n%i==0)returnfalse;//阻止提交 //ret......
  • 质数筛
    判断一个数是不是质数,最基础的方法:boolisprime(intn){if(n<=1)return0;for(inti=2;i<=sqrt(n);i++){if(n%i==0)return0;}return1;}这个方法虽然能判断是不是质数,但效率很低,如果要判断的这个数很大,那么多半是会TLE,所以......