OJ 1507:素数判定

题目描述:

输入一个正整数n,判断n是否是素数,若n是素数,输出”Yes”,否则输出”No”。

输入:

输入一个正整数n(n<=1000)

输出:

如果n是素数输出"Yes",否则输出"No"。输出占一行。

样例输入 
2
样例输出 
Yes

思路:

首先要明白什么是素数,素数也就是质数,只能被1和它本身整除。(例如:2,3,5,7,11,13,17,19···)其次要明白如何判定素数,也就是用这个数(假设是n>2)除以2~(n-1),即1和它本身之间的所有数字,若能被整除(取余为0则可以被整除),则不满足素数定义,就不是素数。接下来说一下代码思路,首先,先用if语句对特殊情况进行判断,看是否属于特殊情况,若不属于,则用上述方法进行判断。

代码:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
    int n;
    int i;

    scanf("%d",&n);   //输入要判定的数,取地址为n

//特殊情况

    if (n == 1)   //判断n是否为1的特例
    {
        printf("No");
    }

    else if (n == 2)   //判断n是否为2的特例
    {
        printf("Yes");
    }

//非特殊情况

    else   //n不是1或2,就可以用上述思路中的方法进行判断了
    {
        for (i = 2; i < n; i++)   //通过for循环来依次除以2~n-1,判断是否不是素数
        {
            if (n % i == 0)   //若不是素数直接跳出循环
            {
                break;
            }
        }

        if (i == n)   //判断是循环正常结束还是循环被跳出
        {
            printf("Yes");   //循环正常结束
        }
        else
        {
            printf("No");   //循环被跳出
        }
    }
    return 0;
}

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值