2 条题解

  • 1
    @ 2025-10-1 11:07:22
    #include <iostream>
    #include <cmath>
    using namespace std;
    
    bool isPrime(int n) 
    {
        if (n <= 1) 
            return false;
        for (int i = 2; i <= sqrt(n); i++) 
        {
            if (n % i == 0) 
                return false;
        }
        return true;
    }
    
    int main()
    {
        int n;
        cin >> n;
        for (int i = 0; i < n; i++)
        {
            int x;
            cin >> x;
            if (isPrime(x))
            {
                cout << "YES" << endl;
            }
            else
            {
                cout << "NO" << endl;
            }
        }
        return 0;
    }
    
    • 0
      @ 2025-10-2 9:24:19

      因为这一题没有算力上的要求,所以无需优化,直接全部列举出来即可。

      当然,如果想要优化的话,可以将用于判断的对象从全部的数缩小到小于其平方的数再只取奇数,要再想缩可以建立质数数组存储之前的所有质数,只用质数判断,之后在视情况是否添加进当前数组。

      #include<stdio.h>
      
      int main(){
      	int i,j,n;scanf("%d",&n);
      	for(i=0;i<n;i++){
      		int a;
      		int ysgs=0;
      		scanf("%d",&a);
      		for(j=1;j<a;j++){
      			if(a%j==0){
      				ysgs++;
      			}
      		}
      		if(ysgs==1){
      			printf("YES\n");
      		}
      		else{
      			printf("NO\n");
      		}
      	}
      	return 0;
      }
      
      • 1

      信息

      ID
      267
      时间
      1000ms
      内存
      256MiB
      难度
      5
      标签
      递交数
      480
      已通过
      173
      上传者