一、判断素数:
定义:只能被1和它自己整除的数叫素数(质素)
方法一:根据定义:对除了1和它自己的数进行取余(%)运算,如果余数为0说明这个数不是素数。 反之就是素数
// 从[2,num-1]
bool isPrimer1(int num)
{
for (int i=2; i<num; i++) {
if(num%i==0)
{
return NO; // 不是素数
}
}
return YES; // 是素数:走到这里说明[2,num-1]之间没有num的约数
}
int main()
{
int num1 = 0;
printf("请输入一个正整数:");
scanf("%d",&num1);
if (isPrimer1(num1)) {
printf("%d是素数.\n",num1);
}else{
printf("%d不是素数。\n",num1);
}
return 0;
}
方式二: 缩小判断范围。判断在[2,sqrt(n)]
这个区间内能不能被整除,能则说明不是素数。
// [2,sqrt(num)]
bool isPrimer2(int num)
{
for (int i=2; i<=sqrt(num); i++) {
if (num%i==0) {
return NO; // 不是素数
}
}
return YES; // 是素数
}
二、判断闰年
判断条件:1.能被4整除,但不是被100整除,是闰年。2.能被400整除是闰年。
bool isRunNian(int year)
{
if ((year%4==0) && (year%100!=0)) {return YES;}
if (year%400==0) {return YES;}
return NO;
}
// 统计[2000,2050]年之间有多少年是闰年,并输出所有闰年
int main()
{
int count=0;
for (int year=2000; year<2050; year++) {
if (isRunNian(year)) {
count++;
printf("%d\t\t",year);
}
}
printf("\n闰年个数:%d\t",count);
return 0;
}
网友评论