编译错误,求调
查看原帖
编译错误,求调
1105009
Yangxixuan楼主2025/1/13 14:35
#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
int s;
int div[1005],dp[1005];
void init(){
	for(int i=2;i<=1000;i++){
		int ans=1;
		for(int j=2;j<=sqrt(i);j++){
			if(i%j==0){
				if(j!=i/j){
					ans+=(j+i/j);
				}
				else{
					ans+=j;
				}
			}
		}
		div[i]=ans;
	}
}
int main(){
	init();
	scanf("%d",&s);
	for(int i=1;i<=s;i++){
		for(int j=s;j>=0;j--){
			if(j>=i){
				dp[j]=max(dp[j-i]+div[i],dp[j]);
			}
		}
	}
	printf("%d\n",dp[s]);
	for(int i=1;i<=1000;i++){
		printf("%d ",div[i]);
	}
	return 0;
}
2025/1/13 14:35
加载中...