HDU 2161 Primes
2017-10-13 14:19
337 查看
http://acm.hdu.edu.cn/showproblem.php?pid=2161
Time Limit: 1000/1000 MS
(Java/Others) Memory
Limit: 32768/32768 K (Java/Others)
Total Submission(s):
3191 Accepted
Submission(s): 1298
[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
[align=left]Source[/align]
2008 “Sunline Cup” National Invitational Contest - Warm
Up
[align=left]Recommend[/align]
lcy
题意很清楚,就是判断素数。值得注意的是:这个题目中,2不是素数;退出条件是num<=0,而非num==0.
代码如下:
#include<stdio.h>
#include<string.h>
bool prime[16001];
void
zhibiao()
//打表,效率高
{
int i,j;
memset(prime,1,sizeof(prime));
prime[1]=0;
for(i=2;i<16001;i++)
{
if(prime[i]==1)
for(j=2;i*j<16001;j++)
prime[i*j]=0;
}
prime[2]=0;
//这个题目中2不是素数
}
int main()
{
int num,m=1;
zhibiao();
while(scanf("%d",&num)&&num>0) //退出条件是num<=0
这地方wrong了一次。。。
{
if(prime[num]==1) printf("%d:
yes\n",m++);
else printf("%d:
no\n",m++);
}
return 0;
}
Primes
Time Limit: 1000/1000 MS
(Java/Others) Memory
Limit: 32768/32768 K (Java/Others)
Total Submission(s):
3191 Accepted
Submission(s): 1298
[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
[align=left]Source[/align]
2008 “Sunline Cup” National Invitational Contest - Warm
Up
[align=left]Recommend[/align]
lcy
题意很清楚,就是判断素数。值得注意的是:这个题目中,2不是素数;退出条件是num<=0,而非num==0.
代码如下:
#include<stdio.h>
#include<string.h>
bool prime[16001];
void
zhibiao()
//打表,效率高
{
int i,j;
memset(prime,1,sizeof(prime));
prime[1]=0;
for(i=2;i<16001;i++)
{
if(prime[i]==1)
for(j=2;i*j<16001;j++)
prime[i*j]=0;
}
prime[2]=0;
//这个题目中2不是素数
}
int main()
{
int num,m=1;
zhibiao();
while(scanf("%d",&num)&&num>0) //退出条件是num<=0
这地方wrong了一次。。。
{
if(prime[num]==1) printf("%d:
yes\n",m++);
else printf("%d:
no\n",m++);
}
return 0;
}
相关文章推荐
- hdu 1216 Assistance Required
- HDU 2401 Baskets of Gold Coins
- HDU 2073 无限的路
- HDU 1397 Goldbach's Conjecture
- HDU 1170 Balloon Comes!
- hdu 相遇周期
- hdu 1016 Prime Ring Problem
- hdu 1081 To The Max
- (HDU)1213 How Many Tables
- HDU:2069 Coin Change
- HDU 1879 继续畅通工程
- HDU 1028 Ignatius and the Princ…
- HDU 4277 USACO ORZ
- HDU 2853 Assignment(KM匹配)
- hdu 1217 Arbitrage
- hdu 1501 Zipper
- HDU 2192 MagicBuilding
- HDU 2061 Treasure the new start,…
- HDU 1391 Number Steps
- HDU 1164 Eddy's research I