判断一个数是否为素数

前提知识:

素数只能被1和自己整除的大于1的自然数,注意1不是素数 

⭐方法一 

思路:①:要判断n是否为素数,只需要检测n是否能被2~(n-1)之间的某个数整除就行

           ②:若n不能被2整除,3整除,4整除……到(n-1)整除,则n是素数

           ③:若n能被2~(n-1)之间的某个数整除

程序为:

#include<stdio.h>
int main()
{
   int n, i;
printf("请输入一个大于1的整数:");
   scanf("%d",&n);
for(i=2;i<=n;i++)
 if(n%i==0)
    break;
if(i == n)
   printf("%d是素数",n);
else
   printf("%d不是素数",n);
return 0;
}

解析:首先,它提示用户输入一个大于1的整数,然后使用for循环从2开始遍历到输入的整数n。在循环中,如果发现n能被i整除(即n % i == 0),则跳出循环。最后,如果i等于n,说明n是素数,输出"n是素数";否则,输出"n不是素数"。

方法二

思路:count的作用是计算这个数的因数个数,如果是2,即只有1和本身,是素数。

#include<stdio.h>
int main()
{
    int n, i;
    int count = 0;
    printf("请输入一个大于1的整数:\n");
    scanf("%d", &n);
    for (i = 1; i <= n; i++)
    {
        if (n % i == 0)//统计要判断的数的因数个数
            count++;
 
    }
    if (count == 2)//如果只有2个因数
        printf("%d是素数", i);
    else
        printf("%d不是素数", i);
        
    return 0;
        
}
  1. 使用for循环从1到i进行遍历
  2. 在循环内部,使用if语句判断当前循环变量m是否能被i整除(即i % m == 0。如果能整除,说明mi的一个因数,将计数器count加1
  3. 循环结束后,使用if语句判断计数器count的值是否等于2
  4. 如果等于2,说明i只有两个因数(1和它本身),因此是素数,使用printf函数输出结果
  5. 否则,说明i不是素数,同样使用printf函数输出结果

⭐方法三 :

#include<stdio.h>
#include<math.h>//求平方根需要引用
int main()
{
    int n, m, i;//定义需要用到的变量
    printf("请输入一个大于1的正整数:");
    scanf("%d", &n);//输入要判断的数
    m = sqrt(n);//求输入数的平方根
    for (i = 2; i <= m; i++)//取2-m之间的每一个整数
        if (n % i == 0)//判断能否整除n
            break;//非素数,跳出循环
    if (i > m)
        printf("%d是素数!\n", n);//循环正常结束,是素数
    else
        printf("%d不是素数!\n", n);//循环中途退出,不是素数
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值