两个代码的区别?
  • 板块灌水区
  • 楼主WZWZWZWY
  • 当前回复15
  • 已保存回复15
  • 发布时间2023/4/26 18:31
  • 上次更新2023/10/23 17:29:29
查看原帖
两个代码的区别?
704668
WZWZWZWY楼主2023/4/26 18:31

直入主题: 这两个代码的区别在哪?(蒟蒻太菜了,这都看不出来QAQ)

题目是求出一个数的所有质因子。

超时的:

#include <iostream>
using namespace std; 
int main()
{
	int n,i=2; 
	cin >> n;
	while(n!=i){
		if(n%i==0)cout << i << endl,n/=i;
		else i++;
	}
	if(n!=1)cout<<n;
	return 0;
}

正确的:

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	long long n;
	cin>>n;
	for(int i=2;i<=sqrt(n);i++){
		if(n%i==0){
		cout<<i<<endl;
		n/=i;
		i-=1;
		}
	}
	cout<<n;
	return 0;
}
2023/4/26 18:31
加载中...