求素数的个数。本题要求编写一个程序,求1~n的素数个数。 要求至少给出两种解法,对于相同的n,给出这两种解法的结果,通过相关数据进行测试,目的是通过对比同一问题不同解法的绝对执行时间体会如何设计“好”

本文探讨了三种计算1到n之间素数个数的方法,包括循环嵌套、开平方根和素数筛。通过比较不同解法的绝对执行时间,以展示如何设计高效的算法。针对大数n,循环嵌套方法会导致超时,而开平方根和素数筛方法更为高效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

三种方法针对同一问题不同解法的绝对执行时间体会如何设计“好”

①循环嵌套

②开平方根

③素数筛


#include<bits/stdc++.h>
using namespace std;
/* 
//对于循环嵌套会超时,10000以上 
int main(){
    int n,s=0;
    cin>>n;
    for(int i=1;i<=n;i++){
        //如果这个数是是素数,s++
        int flage=0;
        for(int j=1;j<=i;j++){
            if(i%j==0)
            flage++;
        } 
        if(flage==2)
        s++;
    }
    cout<<s<<endl;
    return 0;
}
*/


//开根号  
/*
int main(){
    int n,s=0;
    cin>>n;
    for(int i=2;i<=n;i++){
        //如果这个数是素数,s++
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值