14 solutions

  • -3
    @ 2025-11-16 17:05:36

    解题报告

    撰写人: 朱梓霖

    题意分析

    问题描述:给定一个大于等于 2 的整数 n,判断它是否为质数。 质数的定义是:在大于 1 的自然数中,除了 1 和它本身以外不再有其他因数。 输入格式: 一个整数 n。 输出格式: 如果 n 是质数,输出 "Yes";否则输出 "No"。

    难度等级

    ★★☆☆☆

    解题思路

    我们首先假设输入的数字 n 是一个质数,并用一个布尔变量 isPrime 来表示这个状态,初始值为 true。我们使用一个 for 循环来检查 n 是否有除了 1 和它本身之外的因数。循环变量 i 从 2 开始。循环的终止条件是 i * i <= n。这是一个优化点,因为一个数 n 的因数如果存在,那么其中一个必然小于或等于其平方根。检查到其平方根 就足够了,可以减少循环次数。在循环中,对于每一个 i,我们检查 n 是否能被 i 整除(即 n % i == 0)。如果找到了一个可以整除 n 的 i,这说明 n 不是质数。 循环结束后,根据 isPrime 的值进行判断。 如果 isPrime 仍然是 true,说明在整个循环过程中没有找到任何能整除 n 的数,因此 n 是质数,输出 "Yes",否则,输出 "No"。

    解题反思

    代码缩进的重要性:良好的代码缩进可以极大地提高代码的可读性。 逻辑严谨性:在编写条件判断和循环时,一定要仔细梳理每一步的逻辑。 测试是关键:写完代码后,不要只测试一两个简单的案例。

    参考程序

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	int n;
    	bool isPrime=true;
    	cin>>n;
    	for(int i=2;i*i<=n;i++){
    		if(n%i==0)isPrime=false;
    		break;
    	}
    	if(isPrime){
    		cout<<"Yes";}
    		else{cout<<"No";}
    	return 0;}
    

    Information

    ID
    602
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    1
    Tags
    (None)
    # Submissions
    51
    Accepted
    39
    Uploaded By