1 条题解

  • 1
    @ 2023-9-24 9:25:04

    对于这题,有两种情况:

    1.是质数则直接输出"Yes"

    2.不是质数则输出n最小的约数

    可以从2穷举到sqrt(n),如果n%i==0,表明i是n的约数,找到了就把答案变量ans变成i的值,break.

    上代码!

    #include<bits/stdc++.h>
    using namespace std;
    int isprime(int n) //定义函数
    {
        int ans=0; //答案初始化
        for(int i=2;i<=sqrt(n);i++) //穷举
            if(n%i==0) {ans=i;break;} //赋值
        return ans;//返回
    }
    int main()
    {
        int n;
        cin>>n;
        if(!isprime(n)) cout<<"Yes";//是质数
        else cout<<isprime(n);//不是
        return 0;
    }
    

    信息

    ID
    1248
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    递交数
    28
    已通过
    18
    上传者