当前位置: 首页 > news >正文

C语言:质因数分解

题目:

已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数。

分析:

     本题有三个小点需要注意:

        1.找出因子。

        2.判断因子是否为质数。

        3.比较因子大小。

故,采用模块化思想,分开实现,即采用函数单独判断。

代码:

#include<stdio.h>

//判断是否为质数,是则返回1,否则返回0
int is_prime(int x){
	if(x<2) return 0;	//小于2的数不是质数
	for(int i=2;i*i<x;i++)
		if(x%i == 0) //能被整除的数不是质数
			return 0;	
	return 1;
}

//找较大的质因子,能找到则返回较大的质数,找不到则返回-1
int find_larger_prime(int n){
	for(int i=2;i*i<=n;i++){
		if(n%i==0){
			int p=i;
			int q=n/p;
			if(is_prime(q))
				return p>q?p:q;
		}
	}
	return -1;
}

int main(){
	int n;
	scanf("%d",&n);
	int larger_prime = find_larger_prime(n);
	if (larger_prime != -1) {
        printf("%d\n", larger_prime);
    } else {
        printf("not fond\n");
    }
	getchar();
	getchar();
	return 0;
}

测试:

样例输入
21
样例输出
7

相关文章:

  • SpringCloud基础学习
  • C++11特性(笔记二lambda,function)
  • 《解锁万相2.1大模型:开启视频创作新世界》:此文为AI自动生成
  • 聊一聊 IM 如何优化监控
  • spring boot打包插件的问题
  • 计算机毕业设计SpringBoot+Vue.js医院资源管理系统(源码+文档+PPT+讲解)
  • 计算机毕业设计SpringBoot+Vue.js文档管理系统(源码+文档+PPT+讲解)
  • Linux常见基本指令(二)
  • STM32中的ADC
  • 第2章 windows故障排除(网络安全防御实战--蓝军武器库)
  • C++性能优化常用技巧
  • DeepSeek到TinyLSTM的知识蒸馏
  • 【Maven】入门介绍 与 安装、配置
  • [前端]Typescript中装饰器和泛型详解
  • 【软件测试】_使用selenium进行自动化测试示例
  • 神经网络 - 激活函数(ReLU 函数)
  • torch.einsum 的 10 个常见用法详解以及多头注意力实现
  • LeetCode 2353. 设计食物评分系统题解
  • 3.jvm的执行流程
  • 16. LangChain实战项目2——易速鲜花内部问答系统
  • 上海市第二十届青少年科技节启动:为期半年,推出百余项活动
  • 一个留美学生的思想转向——裘毓麐的《游美闻见录》及其他
  • 马上评|科学红毯,让科学家成为“最亮的星”
  • 特朗普政府涉税改法案遭众议院预算委员会否决
  • 受关税政策影响,沃尔玛将上调部分商品在美售价
  • 泉州围头湾一港区项目炸礁被指影响中华白海豚,官方:已叫停重新评估