1 条题解

  • 0
    @ 2023-1-8 10:59:28

    不使用函数

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	int n;
    	cin>>n;
    	int cnt=0;//计数器清零
    	for(int i=1;i<=n;i++)
    	{
    		bool flag=true;//判断i是否为质数 
    		if(i<=1)
    			flag=false;
    		for(int j=2;j*j<=i;j++)
    			if(i%j==0)
    			{
    				flag=false;
    				break;
    			} 
    		//如果flag为真,说明i为质数,计数器加一 
    		if(flag==true)
    			cnt++;	
    	} 
    	cout<<cnt<<"\n";
    	return 0;
    }
    

    使用函数

    #include<bits/stdc++.h>
    using namespace std;
    //返回值:布尔类型
    //函数名/功能名:shizhishu
    //参数:一个 int 型参数 x 
    bool shizhishu(int x){
    	//调用函数执行 shizhishu(i)时
    	//会先做一遍 int x=i;
    	//小于2时直接返回假 
    	if(x<2) return false;
    	//如果在2~sqrt(x)之间发现了因子 也直接返回假 
    	for(int i=2;i*i<=x;i++)
    		if(x%i==0)
    			return false;
    	//如果前面的情况都没有发生,说明x是质数,返回真 
    	return true;		
    }
    
    int main(){
    	int n;
    	cin>>n;
    	int cnt=0;//计数器清零
    	for(int i=1;i<=n;i++)
    		if(shizhishu(i))
    			cnt++;	
    	cout<<cnt<<"\n";
    	return 0;
    }
    
    • 1

    信息

    ID
    371
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    (无)
    递交数
    98
    已通过
    59
    上传者