1028 求素数
/*输出2到200之间(包括2、200)的所有素数
(注:要求1行1个素数,按由小到大的顺序输出)。
输出样例
2
3
5
7
……
199
*/
#include<stdio.h>
int is_ss(int x)//构造函数判断是否为素数
{
int j,a=sqrt(x);
for(j=2;j<=a;j++)
{
if(x%j==0)
return 0;
}
return 1;
}
int main()
{
int i;
for(i=2;i<=200;i++)//打印2-200所有素数
{
if(is_ss(i)==1)
printf("%d\n",i);
}
return 0;
}
拓展题:
/*输入一个数,求一个大于等于它且和它的差最小的素数*/
#include <stdio.h>
#include <math.h>
int sushu(int n)
{
for(int i=2;i<n;i++)//判断是否是素数
{
if(n%i==0)
return 0;
}
return 1;
}
int main()
{
int n,i,m;
scanf("%d",&n);
while(m!=1){
m=sushu(n);//m是return回来的值
if(m==0)/*m=0说明n不是素数,
依次找下一个数,直到找到为止。 */
n++;
}
printf("%d",n);
return 0;
}
1035 打印菱形
/*Description
由键盘输入正数n(n<30),要求输出如下2*n+1行的菱形图案
输出格式
菱形右边不留多余空格
输入样例
2
输出样例
*
***
*****
***
*
*/
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,n;//i,j是循环次数
scanf("%d",&n);
/*中间*最多那一行为0轴,
向上依次i为-1,-2...向下i为1,2..
因此从第一行开始就为-n*/
for(i=-n;i<=n;i++)
{
for(j=1;j<=abs(i);j++)
printf(" ");//找每一行的规律,空格数
for(j=1;j<=2*n+1-2*abs(i);j++)
printf("*");//找每一行的规律,*数
printf("\n");
}
return 0;
}
1038 打印数字菱形
/*Description
由键盘输入正数n(n<10),
要求输出如下中间数字为n的菱形图案。
输出格式
菱形右边不留多余空格
输入样例
4
输出样例
1
121
12321
1234321
12321
121
1
*/
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,n;//i,j是循环次数
scanf("%d",&n);
for(i=-n+1;i<=n-1;i++)
{
for(j=1;j<=abs(i);j++)
printf(" ");//找每一行的规律,空格数
for(j=1;j<=n-abs(i);j++)
printf("%d",j);//找每一行的规律,递增
for(j=n-1-abs(i);j>=1;j--)
printf("%d",j);//递减
printf("\n");
}
return 0;
}
拓展题:
/*
7
*******
*** ***
** **
* *
** **
*** ***
*******
*/
#include <stdio.h>
int main()
{
int n,i,j,k;
scanf("%d",&n);
for(i=1;i<=n/2+1;i++)
{
for(j=n/2+1;j>=1&&j<=n/2+1;j--)
{
if(j>=i)
printf("*");
else
printf(" ");
}
for(k=1;k<=n/2;k++)
{
if(k<=i-2)
printf(" ");
else
printf("*");
}
printf("\n");
}
for(i=1;i<=n/2;i++)
{
for(j=1;j<=n/2+1;j++)
{
if(j<=i+1)
printf("*");
else
printf(" ");
}
for(k=n/2;k>=1&&k<=n/2;k--)
{
if(k>=i+2)
printf(" ");
else
printf("*");
}
printf("\n");
}
return 0;
}
1137 找满足要求的数字
输出1到9999中能被7整除,而且至少有一位数字是5的所有数字
输出格式
一行一个
输出样例
35
56
105
154
#include<stdio.h>
int main()
{
int i;
for(i=1;i<=9999;i++)
{
if(i%7==0)//能被7整除的
{
if(i>10&&i<99)//两位数字(例如25、52)
{
int a = i % 10; //个位
int b = i / 10; //十位
if(a == 5 || b == 5)
printf("%d\n",i);
}
else if (i>100&&i<999)
{
//三位数字(例如125、253、532)
//一定要记住要分别把个位,十位,百位用字母表示出来
int c = i % 10; //个位
int e = i / 100; //百位
int d = i / 10 % 10; //十位
if(c ==5 || d == 5 || e == 5)
printf("%d\n",i);
}
else if( (i>1000&&i<9999))//四位数字
{
int w = i % 10; //个位
int z = i / 1000;//千位
int y = i / 100 % 10;//百位
int x = i / 10 %10;//十位
if(w == 5 || x == 5 || y == 5 || z == 5)
printf("%d\n",i);
}
}
}
return 0;
}