c++程式碼判斷給定數字是否為醜數
題目描述
只包含因子2,3,5的正整數被稱作醜數,比如4,10,12都是醜數,而7,23,111則不是醜數,另外1也不是醜數。請編寫一個函式,輸入一個整數n,能夠判斷該整數是否為醜數,如果是,則輸出True,否則輸出False。
輸入描述
每行輸入一個正整數 n
1 <= n<= 1000000
輸出描述
對於每一行輸入,輸出其是否為醜數,是則輸出True,否則輸出False
樣例輸入
4
7
12
樣例輸出
True
False
True
- 此演算法實質上是使用程式碼邏輯還原了質因數分解的全過程。當給定數字num取餘2、3、5與0相等,那麼表示num的因子一定包含2、3、5。
- 使用num除以2、3、5則可以表示為分解出一個因子,以此類推,當num==1時,表示給定數字的因子只包含2、3、5,根據定義即可得知這個數為醜數。
#include <iostream> using namespace std; bool isUgly(int num) { /*當num包含因數2時,取餘結果必定為0;num/2相當於分解出一個因數:2。 以此類推,當num==1時,表示給定數字的因子只包含2、3、5,根據定義即可得知這個數為醜數*/ while (num % 2 == 0) num /= 2; while (num % 3 == 0) num /= 3; while (num % 5 == 0) num /= 5; return num == 1 ? true : false; } int main() { int num; /*如果需要輸入時不受回車影響,可以使用陣列儲存使用者輸入的數字*/ while (true) { cin >> num; if (!num) { break; } cout << (isUgly(num) ? "True" : "False") << "\n"; } system("pause"); return 0; }
相關推薦
c++程式碼判斷給定數字是否為醜數
題目描述 只包含因子2,3,5的正整數被稱作醜數,比如4,10,12都是醜數,而7,23,111則不是醜數,另外1也不是醜數。請編寫一個函式,輸入一個整數n,能夠判斷該整數是否為醜數,如果是,則輸出True,否則輸出False。 輸入描述 每行輸入一個正整數 n 1
C和Java判斷一個數字是否為素數
C: /* 素數: 素數又稱質數。所謂素數是指除了 1 和它本身以外,不能被任何整數整除的數,例如17就是素數,因為它不能被 2~16 的任一整數整除。 */ # include <stdio.h> bool PrimeNumber(int val); int ma
C++之判斷一個數是否為素數
#include <iostream> #include "math.h" using namespace std; bool isPrimeNumber(int number) { //判斷是否為素數 float sqrtOfNum = sqrt(number);
判斷給定序列是否為BST後序遍歷序列
輸入一個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。假設輸入的陣列的任意兩個數字都互不相同。 目錄 一、BST 1.1 定義 1.2 性質 二、思路 一、BST 1.1 定
C語言:將數字轉化為字串
#include<stdio.h> #include<assert.h> #include<string.h> //123====>“1 2 3” 將數字轉化為字串 char *my_itoa(char *str,i
C# 程式碼判斷電腦是否聯網
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.
判斷一個數是否為完美數核心程式碼
package 演算法學習;import java.util.*;//整除找因子必然用到模運算public class 完美數 {public boolean isPerfect(int n) {int sum=0;for(int i=1;i<n;i++) {if(n%
C語言判斷一個數是否為素數
所謂素數,是指除了1和本身之外,不能被其他任何整數整除的數。 判斷一個數n(n>=3)的方法:將n作為被除數,將2到(n-1)各個整數先後做除數,如果都不能被整除,則n為素數。 演算法分析: S1:輸入n的值 S2:i=2(i作為除數) S3:n被i除,得餘數r,r=
C#程式碼判斷閏年
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.
js判斷一個數字是否為整數:
1、使用取餘運算子(%) + 判斷物件是否是數字來判斷: 注意:空字串、字串型別數字、布林true、空陣列對1求餘,結果都是true(因為他們都是物件,),所以要先判斷物件是否為數字var isYear=function(year){if(typeof(year)==
c語言==判斷一個數是否為2的整數次方【不使用迴圈】
對於判斷一個數是否為2的N次方問題,通常想到的最為直接的辦法就是對這個數不斷對2取餘,為0就將該數變為該數除以2,直到最後該數為1為止。 void judge(int n) { while(!(n % 2)) { n = n
C語言中把數字轉換為字串
在將各種型別的資料構造成字串時,sprintf 的強大功能很少會讓你失望。由於sprintf 跟printf 在用法上幾乎一樣,只是列印的目的地不同而已,前者列印到字串中,後者則直接在命令列上輸出。這也導致sprintf 比printf 有用得多。sprintf 是個變參函
java 日期判斷 給定日期是否為當天 一週7天以內 一週7天以外
public static boolean isToday(String validateDate){final String format = "yyyy-MM-dd HH:mm:ss";Date vDate = null;try {vDate = str2Date(v
判斷一個數是否為回數
判斷 n) back for format %s 個數 一個 lse 回數:數字正反都是它本身就叫回數 def is_back_num(num): if str(num) == str(n)[::-1]
判斷一個數是否為水仙花數
原部落格地址 在判斷某一個數是水仙花數之前,我們先介紹一下什麼是水仙花數。 水仙花數(Narcissistic number)也被稱為超完全數字不變數(pluperfect digital invariant,PPDI)、自戀數、自冪數、阿姆斯壯數或阿姆斯特朗
判斷某整數是否為兩數平方之和
題:給定一個整數 N,寫一個程式判斷是否存在 2 個整數 a、b(a < b),使得 a^2 + b^2 = N 如: 輸入:N = 5,輸出:true 輸入:N = 7,輸出:false
判斷一個整數是否為水仙花數(迴圈分解,立方相加)
判斷一個數是否為水仙花數,最常規的做法就是:分解個十百位,立方相加與原數做相等判斷。現在我們來換種思路判斷一個三位正整數是否為水仙花數。程式碼如下:import java.util.*; class
判斷一個數是否是醜數
return pre ole ret pub public boolean 因子 nbsp 問題描述:對於只含有質因子2,3,5的數,我們稱這樣的數為醜數 代碼如下: public static boolean isUgly(int n){ whi
C#判斷一個string是否為數字(正則表示式)
方案一:Try...Catch(執行效率不高) private bool IsNumberic(string oText) { try &nb
C++ 程式碼統計工具 & 判斷一行程式碼是否為註釋行
這兩天接手了一個專案,專案定義了一種自己語法,所以有了判斷註釋的需求。 這裡自己簡單實現了一個,程式碼非常精簡。 提供的註釋語法和C++是一模一樣的, 允許 // 和 /* */兩種註釋 兩個問題