Problem A: 判断是否是素数

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/david2000999/article/details/102619479

Problem A: 判断是否是素数

分析

是否为一个素数即质数,最直接的方法就是遍历法,对于是否为素数则只需要到这个数本身的平方根即可。
本题的关键在于只要有一个1和它本身的数可以被其整除就判断了是否为素数,也就可以跳出循环,所以采用break语句完成。

Description

素数(质数)是除了 1 和它本身之外没有其它因子的自然数。

Input

输入一个正整数n。

Output

判断输入的数是否是素数,若是素数输出Yes,否则输出No。

Sample Input

3
20
97

Sample Output

Yes
No
Yes

#include<stdio.h>
int main()
{
    int a=0,n,i;
    scanf("%d",&n);
    
	for(i=2;i*i<=n;i++)//i*i<=n,也就是i小于n的平方根
    {
    	if(n%i==0)
    	{
	      a=1;	//利用间接变量最后做判断
    	break;
    	}
    	else
	   {
		a=0;
		
	   }
    }
    
    if(a==1)printf("No\n");//最后完成判断,输出结果
    if(a==0)printf("Yes\n");
    
    return 0;
}

总结

1、对于一些试错(遍历)的题目,要巧妙设置终止条件。
2、对于平方根问题可以用乘方来解决。
3、可以利用间接变量,最后再做判断。
4、巧用break语句。

猜你喜欢

转载自blog.csdn.net/david2000999/article/details/102619479