任意输入一个整数m,若m不是素数,则输出其所有不包括1和自身的因子;否则输出“没有因子,是素数”的相关提示信息。

标题

输入提示信息:“Please enter a number:”
输入格式:"%d"
输出格式:
有因子时:"%d\n"
无因子时:“It is a prime number.No divisor!\n”
输入为1,0,-1时:“It is not a prime number.No divisor!\n”

#include  <math.h>
#include  <stdio.h>
main()
{
    int  m, i;
    int  flag = 1;//置标志变量flag初值为真(1)
    printf("Please enter a number:");
    scanf("%d", &m);
    if (m <= 1)//负数,0和1都不是素数    
    {
        flag = 0;//将标志变量flag置为假(0
        if (1 == m || -1 == m || 0 == m)
            {
                printf("It is not a prime number.No divisor!\n");
            }
        m = (int)fabs(m);//对m取绝对值,以便对负数输出因子但不输出正负号
    }
    for (i = 2; i <= m - 1; i++)
    {
        if (m % i == 0)//若m能被i整除,表明i是m的一个因子
            {
                flag = 0;//则将标志变量flag置为假(0
                printf("%d\n", i);//输出m的因子i
            }
    }
    if (flag)//若标志变量flag为真,则表明全部检验完毕,未发现能整除m的数
    {
        printf("It is a prime number.No divisor!\n");//m是素数,没有因子
    }
}                   
发布了24 篇原创文章 · 获赞 16 · 访问量 1250

猜你喜欢

转载自blog.csdn.net/weixin_46014378/article/details/103546228