(语法百题29)求出2-100之间的所有质数(素数)

知识点:

用到了指针

算法:除去1和本身,中间的所有数如果都不能被本身整除,这个数就是素数。

内容: 求出2-100之间的所有质数(素数)

输入说明:

输出说明:

一行一个素数

#include <stdio.h>
int main()
{
 int i,a[100],*p,j,m;
 p=a;
 for (i=2;i<=100;i++)
 {
  p=a;
  for (j=2;j<i;j++,p++)   //每一个i,从2到i-1的每个数j被i除,余数存入数组
  {
   *p=i%j;
  }
  p=a;                    //重新指到a[0]
  for (;p<a+i-2;p++)      //数组的个数为2到i之间的数目,所以要-2
  {
   if (*p!=0)             //检测余数是否有为0的
   {
    m=0;
   }
   else                   //检测到余数为0,跳出,此时不满足m!=1,不输出
   {
    m=1;
    break;
   }
  }
  if(m!=1)
  {
   printf("%d\n",i);
  }

 }
 return 0;
}
时间: 2024-10-25 14:16:12

(语法百题29)求出2-100之间的所有质数(素数)的相关文章

输出100之间的所有质数(素数)

质数又称素数.一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数:否则称为合数 int a,b; for(a=2;a<=100;a++) //取100以内所有的数 { for(b=2;b<a;b++) //穷举法判断是否有因子 { if(a%b==0) //有则非质数 break; //跳出本次循环 } if(b>=a) //当条件为真则为质数 printf("%5d",a); } 打印: p.p1 { margin: 0.0px 0.0px 0.

(c语法百题25)从 n 个数中挑选出最大的数

知识点: 数组灵活运用 for循环灵活运用 简单的算法 内容: 从 n 个数中挑选出最大的数 输入说明: 两行 第一行一个数n,表示总的个数 第二行共n个数字,用空格隔开. 输出说明: 一行,最大数 输入样例: 4 1 2 3 4 输出样例 : 4 #include <stdio.h>#define MAX 200; int main() { int a[MAX],n,i,t; scanf("%d",&n); for (i=0;i<n;i++) { scanf

(c语法百题7)求两数的整数商 和 余数

知识点: 求商和求余 /   和 % 的用法. 注意 /  中,两个%d的值为整数,即取整.有%f类的,就是商了,带小数的. 内容: 求两数的整数商 和 余数 输入说明: 一行两个整数 输出说明: 一行两个整数 输入样例: 若题目没有特别说明,则应该以多组测试数据方式读取,或者参考a001. 18 4 输出样例 : 4 2 #include <stdio.h> int main() { int a,b; scanf("%d %d",&a,&b); print

(c语法百题9)求梯形的面积

法1: 全部用定义float型 法2: 用int整型,答案用float型,注意此时 printf ("%.2f\n",d);中的d,确保是有小数的.比如0.00,才能运行.不过此法一些语言工具编译不过,一些oj也刷不过去.不过vc是合法的. 内容: 已知上底.下底和高,求梯形的面积 输入说明: 一行三个数 输出说明: 一行一个数(保留2位小数) 输入样例: 3 5 4 输出样例 : 16.00 法1: #include <stdio.h> int main() { floa

(c语法百题5)求圆的周长 和 面积

知识点: 头文件#define的用法 浮点型%f的用法,控制小数. 内容: 求圆的周长 和 面积 输入说明: 一行 ,半径值 ,实型 输出说明: pi=3.1415 情况 下 的 周长 和 面积 (保留2位小数),分两行输出 输入样例: 若题目没有特别说明,则应该以多组测试数据方式读取,或者参考a001. 10.0 输出样例 : 62.83 314.15 #include <stdio.h> #define pi 3.1415 int main() { float a; scanf("

(c语法百题8)求两数的整数商 和 商

内容: 求两数的整数商 和 商 ,商保留两位小数 输入说明: 一行 两个整数 输出说明: 一行,一个整数,一个实数(两位小数) 输入样例: 若题目没有特别说明,则应该以多组测试数据方式读取,或者参考a001. 12 8 输出样例 : 1 1.50 #include <stdio.h> int main() { int a,b; scanf("%d %d",&a,&b); printf("%d %.2f\n",a/b,a/(1.0*b));

(c语法百题4)求两数中的较大者

知识点: if语句 内容: 求两数中的较大者 输入说明: 一行两个数 输出说明: 一行 一个 数字 输入样例: 若题目没有特别说明,则应该以多组测试数据方式读取,或者参考a001. 3 5 输出样例 : 5 #include <stdio.h> int main() { int a,b,c; scanf("%d %d",&a,&b); if(a<b) { c=b; a=c; } printf("%d\n",a); return 0;

(c语法百题21)四位整数

知识点: for语句,if语句灵活运用 内容: 编程找出四位整数 abcd 中满足下述关系的数: ( ab + cd )( ab + cd ) = abcd 输入说明: 没有输入 输出说明: 输出abcd,从小到大,一行一个. 1 #include <stdio.h> 2 int main() 3 { 4 int i,a,b; 5 for(i=1000;i<10000;i++) 6 { 7 a=i/100; 8 b=i%100; 9 if((a+b)*(a+b)==i) 10 { 11

(c语法百题15)算术运算

知识点: 法1: 字符与ASCLL码的转换熟练! if……else的用法 法2: switch的用法 注意 scanf("%f %f %c",&a,&b,&c);与scanf("%f%f%c",&a,&b,&c);的区别,中间有无空格. 内容: 输入两个数值(均不为零)及一个算术运算符,输出其运算的结果(保留两位小数). 输入说明: 一行,2个数字,一字符(+,-,*,/,分别代表加.减.乘.除 输出说明: 一行,一个