质因子 C语言 编程
发布网友
发布时间:2022-09-16 04:04
我来回答
共4个回答
热心网友
时间:2023-10-12 00:10
#include"stdio.h"
void main()
{
int i=2,n;
printf("请输入数:\n");
scanf("%d",&n);
while(i<n)
{
if(n/i==float(n/i))
{
printf("%d\t",i);
n=n/i;
if(n==1)
break;
continue;
}
i++;
}
}追问不对呀 调试结果不是 2 2 3 3 5
追答#include"stdio.h"
void main()
{
int i=2,n;
printf("请输入数:\n");
scanf("%d",&n);
while(i<n)
{
if(n/i==(float)n/i) 这强制符弄错了
{
printf("%d\t",i);
n=n/i;
if(n==1)
break;
}
else i++; 这稍作修改
}
}
热心网友
时间:2023-10-12 00:10
int main()
{
int n;
int i = 2;
printf("enter the number:");
scanf("%d", &n);
while (i <= n)
{
if (n % i == 0)
{
printf("%d ", i);
n /= i;
continue;
}
else
i++;
}
return 0;
}
另外,如果输入的数一定是合数的话,考虑程序效率,没必要循环这么多次,while的判定i <= n可以改成i<=(int)sqrt(n)
热心网友
时间:2023-10-12 00:11
#include<stdio.h>
//判断是否为质数
bool Detec(int a)
{
int i;
for(i=2;i<=a/2;i++)
{
if(a%i==0)
return false;
}
return true;
}
void main()
{
int n;
int i,temp;
temp=n;
printf("请输入一个整数:\n");
scanf("%d",&n);
for(i=2;i<=n;i++)
{
if(temp%i==0)
{
if(Detec(i))
{
printf("%d ",i);
temp=temp/i;
i=1;
}
}
}
}
热心网友
时间:2023-10-12 00:11
#include <conio.h>
#include <stdio.h>
IsPrime(int n)
{
int i, m;
m = 1;
for (i=2; i<n; i++)
if (!(n%i))
{
m = 0;
break;
}
return(m);
}
main()
{
int j, k;
printf("\nplease enter an integer number between 2 and 10000:");
scanf("%d", &k);
printf("\n\nThe prime factor(s) of %d is(are):", k);
for (j=2; j<k; j++)
if ((!(k%j)) && (IsPrime(j)))
printf(" %4d,", j);
printf("\n");
}