素数:只有1和它本身这两个因数的自然数叫做素数。还可以说成素数只有1和它本身两个约数。还可以说成素数是这样的整数,它除了能表示为它自己和1的乘积以外,不能表示为任何其它两个正整数的乘积。例如,15=3×5,所以15不是素数;又如,12 =6×2=4×3,所以12也不是素数。另一方面,13除了等于13×1以外,不能表示为其它任何两个正整数的乘积,所以13是一个素数。我们的任务就是判断输入是否为素数。输入正整数n,若是素数,输出“Y”,若不是素数,输出“N”。
输入格式:
输出格式:
输入样例:
13
输出样例:
Y
#include<stdio.h>
int main()
{
int n,i,k;
scanf("%d",&n);
k=n/2;
for(i=2;i<=k;i++)
if(n%i==0) break;
if(i>k)
printf("Y\n");
else
printf("N\n");
}
2.0版本
输入a,b两个数,输出[a,b]之间的所有素数,要求每行输出7个素数(素数之间用空格间隔),如果[a,b]不存在素数,输出“no”
输入格式:
输出格式:
输入样例:
100 197
输出样例:
101 103 107 109 113 127 131
137 139 149 151 157 163 167
173 179 181 191 193 197
#include <stdio.h>
int main()
{
int a,b,count =0;//标志变量
int j,n=0;
scanf("%d %d",&a,&b);
for(int i=a;i<=b;i++)//循环{A-B}之间的数
{
for(j=2;j<i;j++)
{
if(i%j==0) //判断素数
break;
}
if(j==i)
{
count=1;n++;
printf("%d ",i);
if(n%7==0)printf("\n");//每行输出7个素数
}
}
if(count==0)
printf("no");
}