C

质数因子

http://www.nowcoder.com/questionTerminal/196534628ca6490ebce2e336b47b3607

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>

char* getResult(long ulDataInput);

int main(void)
{
	long int ulDataInput = 0;

	scanf("%ld", &ulDataInput);

	char* string = { 0 };
	string = getResult(ulDataInput);
	puts(string); // 打印

	free(string); // 释放,防止内存泄漏

	system("pause");

	return 0;
}

char* getResult(long ulDataInput)
{
	char* string = (char*)malloc(ulDataInput*sizeof(char));
	char* s = { 0 };
	int j = 0;
	long int num = ulDataInput;

	for (long int i = 2; i <= ulDataInput; i++) // 提取公因子
	{
		while (num%i == 0) // 如果取余为0,则表明i为公因子
		{
			num /= i;

			sprintf(string + j, "%ld%c", i, ' '); // 将公因子i和‘ ’组合成字符串
			j = strlen(string); // 用于修改指针
		}
	}

	return string; 
}

全部评论

相关推荐

01-14 16:23
广州商学院 Java
双非后端失败第N人:如果准备好了可以直接投字节,字节是最不看学历的,只要想面,大概率都能给你约面。
双非有机会进大厂吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务