HDU 2161 Primes (判斷素數的水題)
阿新 • • 發佈:2019-02-16
Write a program to read in a list of integers and determine whether or not each number is prime. A number, n, is prime if its only divisors are 1 and n. For this problem, the numbers 1 and 2 are not considered primes.
OutputThe output should consists of one line for every number, where each line first lists the problem number, followed by a colon and space, followed by "yes" or "no".
Sample Input
1 2 3 4 5 17 0
1: no 2: no 3: yes 4: no 5: yes 6: yes
相當水的一道數論了吧,判斷素數,放鬆心情了當
#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<vector> #include<set> #include<map> #include<queue> #include<cmath> using namespace std; int main() { bool prime[1000005] = {0,1,0}; // memset(prime, 1, sizeof(prime)); for(int i = 2; i <= 1000005; i ++) if(!prime[i]) for(int j = i + i; j <= 1000005; j += i) prime[j] = 1; prime[2] = 1; int k = 1; int n; while(cin>>n) { if(n<=0)break; if(!prime[n]) printf("%d: yes\n",k++); else printf("%d: no\n",k++); } return 0; }