15 条题解

  • 2
    @ 2024-12-29 8:50:20

    写一个判断质数的函数即可

    #include<bits/stdc++.h>
    using namespace std; 
    int a;
    bool fun(int n){
    	if(n<=1){
    		return false;
    	}
    	for(int i=2;i<n;i++){
    		if(n%i==0){
    			return false;
    		}
    	}
    	return true;
    }
    int main(){
    	cin>>a;
    	if(fun(a)==true){
    		cout<<"yes";
    	}
    	else{
    		cout<<"no";
    	}
    	return 0;
    }
    
    • 1
      @ 2025-12-13 16:48:15

      暴力打表居然AC了!!!

      using namespace std;
      int main(){
      	int a;
      	cin>>a;
      	if(a%3==0&&a!=3){
      		cout<<"no";
      	}
      	else if(a%5==0&&a!=5){
      		cout<<"no";
      	}
      	else if(a%7==0&&a!=7){
      			cout<<"no";
      	}
      	else if(a%2==0&&a!=2){
      			cout<<"no";
      	}
      	else if(a%11==0&&a!=11){
      			cout<<"no";
      	}
      	else if(a%13==0&&a!=13){
      			cout<<"no";
      	}
      	else if(a%17==0&&a!=17){
      			cout<<"no";
      	}	
      	else if(a%19==0&&a!=19){
      			cout<<"no";
      	}
      	else if(a%23==0&&a!=23){
      			cout<<"no";
      	}
      	else if(a%25==0&&a!=25){
      			cout<<"no";
      	}
      	else if(a%31==0&&a!=31){
      			cout<<"no";
      	}
      	else if(a%37==0&&a!=37){
      			cout<<"no";
      	}
      	else if(a%41==0&&a!=41){
      			cout<<"no";
      	}
      	else if(a%43==0&&a!=43){
      			cout<<"no";
      	}
      	else if(a%47==0&&a!=47){
      			cout<<"no";
      	}
      	else if(a%53==0&&a!=53){
      			cout<<"no";
      	}
      	else if(a%59==0&&a!=59){
      			cout<<"no";
      	}
      	else if(a%61==0&&a!=61){
      			cout<<"no";
      	}
      	else if(a%67==0&&a!=67){
      			cout<<"no";
      	}
      	else if(a%71==0&&a!=71){
      			cout<<"no";
      	}
      	else if(a%73==0&&a!=73){
      			cout<<"no";
      	}
      	else if(a%79==0&&a!=79){
      			cout<<"no";
      	}
      	else if(a%83==0&&a!=83){
      			cout<<"no";
      	}
      	else if(a%89==0&&a!=89){
      			cout<<"no";
      	}
      	else if(a%97==0&&a!=97){
      			cout<<"no";
      	}
      	else{
      		cout<<"yes";
      	}
      	return 0;
      }
      
      
      • 1
        @ 2024-12-29 9:13:56

        理论上讲,由于c++的特性
        int直接舍弃小数位

        我们分类讨论:

        如果n为平方数

        那么sqrt(n)*sqrt(n)=n
        刚好可以判断到

        如果n不是平方数

        那么sqrt(n)*sqrt(n)<n
        okk

        什么?你问我为啥不是枚举到n/2?

        随便拆一个数举例子:
        12
        =1 x 12
        =2 x 6
        =3 x 4
        可以发现,左右两个数列都在逼近sqrt(12)
        而c++特性告诉我们:int(sqrt(12))=3
        所以说直接从2枚举到sqrt(n)就可以了
        1肯定不用枚举
        你家哪个整数不能被1整除啊......

        #include<bits/stdc++.h>
        using namespace std;
        int main(){
        	int n;
        	cin>>n;
        	for(int i=2;i<=sqrt(n);i++){
        		if(n%i==0){
        			cout<<"no";
        			return 0;
        		}
        	}
        	cout<<"yes";
        	return 0;
        }
        
        • 0
          @ 2025-12-14 20:18:51

          太简单了

          #include<bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; if(n1){ cout<<"no"; return 0; } for(int i=2;i<n;i++){ if(n%i0){ cout<<"no"; return 0; } } cout<<"yes"; return 0; }

          • 0
            @ 2025-10-26 10:40:29
            for(register int i=1;i<=n;++i){
            		for(register int j=1;j<=n;++j){
            			cout<<rand()%10+1<<" ";
            		}
            		cout<<'\n';
            	}
            	
            
            • 0
              @ 2024-12-22 17:57:40

              楼下的无敌,发现大伙儿们都写函数。

              我整个对下一届初级班友好一点儿的,带注释:

              #include<bits/stdc++.h>
              using namespace std;
              int main()
              {
              	int n;
              	cin>>n;//输入,不必多说。
              	if(n==1)
              	{
              		cout<<"no";
              		return 0;
              	}
              	for(int i=2;i*i<=n;i++)//时间复杂度根号 n,算个优化,因为一旦 i 大于根号 n,n 取余 i 就不会等于 0 了。
              	{
              		if(n%i==0)
              		{
              			cout<<"no";
              			return 0;//输出完直接 return!(顺便少定义个 flag 啊哈哈哈哈)
              		}
              	}
              	cout<<"yes";
              	return 0;
              }
              
              • 0
                @ 2024-12-22 11:28:47
                #include<bits/stdc++.h>
                using namespace std;
                bool isprime(int n)
                {
                	for(int i=2;i<=sqrt(n);i++)
                	{
                		if(n%i==0)return 0;
                	}
                	return 1;
                }
                int main()
                {
                	int n;
                	cin>>n;
                	if(isprime(n))cout<<"yes";
                	else cout<<"no";
                	return 0;
                }
                
                
                • 0
                  @ 2024-12-22 11:08:29

                  时间复杂度 O(n)O(\sqrt n)

                  #include<bits/stdc++.h>
                  using namespace std;
                  bool IsPrime(int n){
                  	for(int i=2;i*i<=n;i++)//从 2 开始
                          if(n%i==0)return false;
                  	return true;
                  }
                  signed main(){
                  	int n;
                  	cin>>n;
                  	if(IsPrime(n))cout<<"yes";
                  	else cout<<"no";
                  }
                  
                  • -1
                    @ 2025-10-8 10:55:04
                    #include<iostream>
                    using namespace std;
                    bool ss(int a){
                    	if(a==1){
                    		return false;
                    	}
                    	for(int i=2;i<=a-1;i++){
                    		if(a%i==0){
                    			return false;
                    		}
                    	}
                    	return true;
                    }
                    int main(){
                    	int n;
                    	cin>>n;
                    	if(ss(n)){
                    		cout<<"yes";
                    	}
                    	else{
                    		cout<<"no";
                    	}
                    	return 0;
                    }
                    
                    
                    • -1
                      @ 2025-5-28 21:29:47

                      #include<bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; for(int i=2;i<=sqrt(n);i++){ if(n%i==0){ cout<<"no"; return 0; } } cout<<"yes"; return 0; }

                      • -1
                        @ 2025-3-9 14:08:30

                        这道题太简单了

                        #include<bits/stdc++.h>
                        using namespace std;
                        int main(){
                            int n;
                            cin>>n;
                            if(n==1){
                                cout<<"no";
                                return 0;
                            }
                            for(int i=2;i<n;i++){
                                if(n%i==0){
                                    cout<<"no";
                                    return 0;
                                }
                            }
                            cout<<"yes";
                            return 0;
                        }
                        

                        点个赞吧

                        • -1
                          @ 2024-12-29 9:52:01

                          质数只有1和它本身是他的因数

                          故2~n-1无他的因数

                          判断这个区间有无他的因数就行

                          主题代码:

                          for(int i=2;i<n;i++){
                            if(n%i==0){
                              printf("no");
                              return 0;
                            }
                          }
                          
                          • -1
                            @ 2024-12-29 9:03:04
                            #include<bits/stdc++.h>
                            using namespace std;
                            int n;
                            int main(){
                            	cin>>n;
                            	if(n<=1) cout<<"no";
                            	for(int i=2;i*i<=n;i++){
                            		if(n%i==0){
                            			cout<<"no";
                            			return 0;
                            		}
                            	}
                            	cout<<"yes";
                            }
                            
                            
                            • -1
                              @ 2024-12-22 11:11:04

                              直接写一个函数即可。
                              也可以直接筛。

                              #include<bits/stdc++.h>
                              #define int long long
                              #define INF 0x3f3f3f
                              using namespace std;
                              int n;
                              bool prime(int x){
                              	if(x<2)return 0;
                              	for(int i=2;i*i<=n;i++)
                              		if(!(n%i))return 0;
                              	return 1;
                              }
                              signed main(){
                              	cin>>n;
                              	if(prime(n))cout<<"yes";
                              	else cout<<"no";
                              	return 0;
                              }
                              
                              • -1
                                @ 2024-12-22 11:03:51

                                C++ :

                                #include<bits/stdc++.h>
                                using namespace std;
                                int ss(int x){
                                	if(x<2)return false;
                                	if(x==2)return true;
                                	for(int i=2;i<=sqrt(x)+1;i++){
                                		if(x%i==0)return false;
                                	}
                                	return true;
                                }
                                
                                int main(){
                                	int a;
                                	cin>>a;
                                	if(ss(a))cout<<"yes";
                                	else cout<<"no";
                                	return 0;
                                }
                                

                                Python :

                                # coding=utf-8
                                n=int(input())
                                flag=0
                                for i in range(2,n):
                                    if n%i==0:
                                        flag=1
                                        print("no")
                                        break
                                if flag==0:
                                    print("yes")
                                
                                • 1

                                信息

                                ID
                                3
                                时间
                                5000ms
                                内存
                                128MiB
                                难度
                                1
                                标签
                                递交数
                                229
                                已通过
                                236
                                上传者