iT邦幫忙

2024 iThome 鐵人賽

DAY 24
0
佛心分享-刷題不只是刷題

CPE C++ 刷題系列 第 24

CPE C++ 刷題 Day 24

  • 分享至 

  • xImage
  •  

今天來解YKL28(UVA10235):Simply Emirp

Simply Emirp

https://ithelp.ithome.com.tw/upload/images/20241008/201555748TwhbYPwVB.png

假設一個數是 17
17 跟倒過來的數 71 都是質數(Prime)的話,那就是 emirp
如果只有 17 是 Prime 的話,那就是輸出 is prime
上面都者都不是的話,輸出 not prime

從3開始到n開更號,一個個比是不是質數

#include <iostream>
#include <cmath>

using namespace std;

bool isPrime(int n){
	if(n <= 1)return false;
	if(n == 2)return true;
	if(n % 2 == 0)return false;
	
	for(int i=3;i<=sqrt(n);i+=2){
		if(n % i ==0)return false;
	}
	return true;

}

int reverse(int n){
	int reversed =0;
	while(n > 0){
		reversed = reversed * 10 + n % 10;
		n/=10;
	}
	return reversed;
}

int main(){
	int n;
	while(cin >> n){
		if(!isPrime(n)){
			cout << n << " is not prime." << endl;
		}else{
			int reversed = reverse(n);
			if(reversed != n && isPrime(reversed))cout << n << " is emirp." << endl;
			else cout << n << " is prime." << endl;
		}
	
	}

	return 0;
}

上一篇
CPE C++ 刷題 Day 23
下一篇
CPE C++ 刷題 Day 25
系列文
CPE C++ 刷題30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言