---
# System prepended metadata

title: 20191214TOI新手同好會2.質數日

---

# 20191214TOI新手同好會2.質數日

---

題目連結：https://zerojudge.tw/ShowProblem?problemid=e795

---

```clike=
#include<iostream>
#include<math.h>
using namespace std;

int prime(int num){
	int flag = 0;
	for(int i = 2; i <= sqrt(num); i++){
		if(num % i == 0){
			flag = 1;
			break;
		}
	}
	return flag;
}

int main(){
	int t, n, i;
	cin >> t;
	while(t--){
		int ans = 0, temp = 0;
		cin >> n;
		for(i = 1; i <= 8; i++){
			temp = n % int(pow(10, i));
			if(prime(temp) == 1){
				ans = 1;
				break;
			}
		}
		if(ans == 0)
			cout << n << " is a Prime Day!" << endl;
		else
			cout << n << " isn't a Prime Day!" << endl;
	}
	return 0;
} 
```

---

解題想法：
從最後一位(個位)開始測試是否為質數，若不為質數則停止，原因是考量從最高位(也就是八位數的值)，執行時間較久

* <math.h>
sqrt(x) x開根號
pow(x, y) x的y次方
兩者回傳值型態皆為float，若要運算要強制轉回int