您的位置:首页 > 其它

【HDU 2161】Primes(素数~水)

2017-02-27 20:41 405 查看


Primes

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 11937    Accepted Submission(s): 4939


[align=left]Problem Description[/align]
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.

 

[align=left]Input[/align]
Each input line contains a single integer. The list of integers is terminated with a number<= 0. You may assume that the input contains at most 250 numbers and each number is less than or equal to 16000.

 

[align=left]Output[/align]
The 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".

 

[align=left]Sample Input[/align]

1
2
3
4
5
17
0

 

[align=left]Sample Output[/align]

1: no
2: no
3: yes
4: no
5: yes
6: yes
思路:注意是 n<=0 时 break,不看题wa了两发……
#include<bits/stdc++.h>
#define manx 16123
using namespace std;
bool a[manx];
void prime()
{
memset(a,true,sizeof(a));
for (int i=2; i<manx; i++){
if(a[i]){
for (int j=i+i; j<manx; j+=i)
a[j]=false;
}
}
a[0]=false; a[1]=false; a[2]=false;
}
void solve()
{
int n,cas=1;
while(~scanf("%d",&n)){
if(n<=0) break;
printf("%d: ",cas++);
if(a
) printf("yes\n");
else printf("no\n");
}
}
int main()
{
prime();
solve();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: