如何用 C语言 输出一个整数的因子

急用 在线等
2024-12-18 21:26:18
推荐回答(5个)
回答1:

假如整数n除以m,结果是无余数的整数,那么我们称m就是n的因子。 需要注意的是,唯有被除数,除数,商皆为整数,余数为零时,此关系才成立。反过来说,我们称n为m的倍数 。


如果利用C语言求一个整数n的因子,可以从1开始到n,依次加1,如果它是n的的因子,则输出。


具体的源码实现如下:
#include 
#include 
int main(int argc, char* argv[])
{
    int n;
    while(scanf("%d",&n) !=EOF)
    {
        if(n<1)break;
        int i;
        for(i=1;i<=n;i++)
        {
            if(n%i==0)
            printf("%d ",i);
        }
        printf("\n");
    }
    return 0;
}

编译运行后的结果:

回答2:

#include
#include//sqrt()的头文件

int main()
{
int n;
printf("请输入一个整数:");
scanf("%d",&n);//输入这个整数
printf("%d的因数有:",n);
for(int i=1;i<=sqrt(n);++i)//判断所有小于这个整数平方根的数是不是它的因子
if(n%i==0)//n能被i整除,i就是n的因子
printf("%d ",i);

return 0;
}

回答3:

main() {
int x,i;
printf("请输入一个整数:");
scanf("%d",&x);
printf("%d的因子有:", x);
for(i=1;i<=x/2;i++)
if(x%i==0)
printf("%d ",i);
printf("\n");
}

回答4:

#include
void gene(int number)
{
int i, x;
for(i = 2; i * i <= number; i++)
{
while(number % i == 0)
{
printf("%d ", i);
number /= i;
}
}
if(number != 1)
printf("%d ", number);
printf("\n");
}

int main()
{
int number = 0;

while(number != -1)
{
printf("enter a number: ");
scanf("%d", &number);
gene(number);
}

return 0;
}

回答5:

#include
void main()
{
int n,j;
scanf("%d",&n);
for(j=1;j<=n;j++)
if(n%j==0)
{printf("%d",j);
printf("\n");