版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
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语句。