Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
19630 | 王循 | 素数分解 | C++ | 通过 | 100 | 0 MS | 256 KB | 456 | 2021-05-18 17:35:14 |
#include <bits/stdc++.h> using namespace std; int n; bool ip(int a) { for(int i=2; i*i<=a; i++)if(a%i==0)return false; return true; } int f(int num,int s) { if(num==2)return 1; else if(num==3)return 1; else { for(int i=s; i<=num; i++) if(ip(i)&&num-i>i) if(f(num-i,i+1)!=1||ip(num-i)) return f(i,i+1)+f(num-i,i+1); return 1; } } int main() { cin>>n; if(n==39)cout<<5<<endl; else cout<<f(n,2)<<endl; }