文章

15

粉丝

68

获赞

0

访问

8.0k

头像
最长连续因子 题解:利用数组存储因子,然后检查,更新出来结果
P1020 贵州大学机试题
发布于2024年4月4日 13:44
阅读数 545

#include <bits/stdc++.h>
using namespace std;

int main(){
	int n;
	cin>>n;
	int sheet[11000]={0};
	int size=0;
	for(int i=2;i<=n;i++){
		if(n%i==0){
			sheet[i-2]=i;
			size++;
		}
	}
	if(size==1)cout<<n<<endl;
	else{
		int maxlen=1,maxstart=sheet[0];
		int len=1,start=sheet[0];
		for(int i=1;i<size;i++){
			if(sheet[i]==sheet[i-1]+1){
				len++;
			}else{
				if(len>maxlen){
					maxlen=len;
					maxstart=start;
				}
				len=1;
				start=sheet[i];
			}
		}
		for(int i=maxstart;i<maxstart+maxlen;i++){
			cout<<i<<" ";
		}
		cout<<endl;
	}
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发