PAT(Basic Level) 1096 大美数
生活随笔
收集整理的這篇文章主要介紹了
PAT(Basic Level) 1096 大美数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
若正整數?N?可以整除它的 4 個不同正因數之和,則稱這樣的正整數為“大美數”。本題就要求你判斷任一給定的正整數是否是“大美數”。
輸入格式:
輸入在第一行中給出正整數?K(≤10),隨后一行給出?K?個待檢測的、不超過?104?的正整數。
輸出格式:
對每個需要檢測的數字,如果它是大美數就在一行中輸出?Yes,否則輸出?No。
輸入樣例:
3 18 29 40輸出樣例:
Yes No Yes代碼長度限制
16 KB
時間限制
400 ms
內存限制
64 MB
#include <bits/stdc++.h> #include <algorithm> #include <cmath> #include <math.h> using namespace std; int main(){int K;int i,j,k=0;int m,n,p,q;int flag=0;int number;cin>>K;for(i=0;i<K;i++){cin>>number;int a[10100]={0};k=0;for(j=1;j<=number;j++){if(!(number%j)){a[k++]=j;}}//該層循環求得這個數的所有正因數并放入數組中if(k<4) cout<<"No"<<endl;else{flag=0;for(m=0;m<k-3;m++){for(n=m+1;n<k-2;n++){for(p=n+1;p<k-1;p++){for(q=p+1;q<k;q++){if(a[m]!=a[n]&&a[n]!=a[p]&&a[p]!=a[q]&&!((a[m]+a[n]+a[p]+a[q])%number)){flag=1;}}}}}if(!flag) cout<<"No"<<endl;else cout<<"Yes"<<endl;}}return 0; }本題思路是暴力枚舉算法,還是挺好用的。
總結
以上是生活随笔為你收集整理的PAT(Basic Level) 1096 大美数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SIM900B GPRS模块————打电
- 下一篇: 平衡二叉树算法详解