c++训练题(求某个数的最大质数因子)兼自己写的一个打印一定范围内质数方法

本文介绍了一道编程题,要求找到600851475143的最大质数因子。作者分享了如何打印10000以内的质数,并讨论了两种解题思路:一是保存所有质数直到目标数的平方根,二是先找出因子再判断是否为质数。最终代码实现并得到了最大质数因子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:Largest prime factor

The prime factors of 13195 are 5 7 13 29, what is the largest prime factor of the number 600851475143?

大概意思是,数13195的质数因子为5 7 13 29,求600851475143的最大质数因子是多少?

首先插点题外话,打印10000以内的质数,分析:1.质数除了2都是奇数,2.自然数只要不被前面小于它开方的质数整除它就是质数。我是用vector向量来保存数据的,动态的易保存。

代码:

// prime_number.cpp : 定义控制台应用程序的入口点。
//求1~10000内的质数
//质数除了2都是奇数
//自然数只要不被前面的质数整除它就是质数
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <iomanip>

using namespace std;
bool primeNum(int num, vector<int> vec)
{
	int sq=sqrt(num*1.0);
	vector<int>::iterator iter;
	for(iter=vec.begin(); iter!=vec.end(); iter++)
	{
		if((*iter)<(sq+1))
		{
			if(num%(*iter)==0)
			{
				return fals
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值