PAT 1096 大美数 (15 分) c语言
生活随笔
收集整理的這篇文章主要介紹了
PAT 1096 大美数 (15 分) c语言
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ? 不得不說這道題有一點陰險,陰險之處在于a整除b是b%a==0,而就算搞錯了也會有兩個測試點是對的,題干里的測試例也是對的,就很難發現自己弄錯了。解決這個問題以后就比較容易了。
1096 大美數 (15 分)
若正整數 N 可以整除它的 4 個不同正因數之和,則稱這樣的正整數為“大美數”。本題就要求你判斷任一給定的正整數是否是“大美數”。
輸入格式:
輸入在第一行中給出正整數 K(≤10),隨后一行給出 K 個待檢測的、不超過 104 的正整數。
輸出格式:
對每個需要檢測的數字,如果它是大美數就在一行中輸出 Yes,否則輸出 No。
輸入樣例:
3 18 29 40輸出樣例:
Yes No Yes代碼?
#include<stdio.h> int val[10000] , cnt ; int check(int n){ //判斷是不是大美數 cnt = 0 ;for(int i = 1 ; i <= n ; i++){if(n % i == 0) /*找出所有的因數,并用x記錄個數*/val[cnt++] = i;}if(cnt < 4) /*如果因數不足四個,則不可能是大美數*/return 0;for(int i = 0 ; i < cnt ; i++){for(int j = i + 1 ; j < cnt ; j++){for(int k = j + 1 ; k < cnt ; k++){for(int l = k + 1 ; l < cnt ; l++){if((val[i] + val[j] + val[k] + val[l]) % n) continue ;return 1 ;}}}}return 0 ; } int main(){int n , cur;scanf("%d" , &n); while(n--){scanf("%d" , &cur);if(check(cur) == 1)printf("Yes\n");elseprintf("No\n");}return 0; }總結
以上是生活随笔為你收集整理的PAT 1096 大美数 (15 分) c语言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 裸辞20天,10个offer
- 下一篇: 本周 火火火火 的开源项目!