c语言程序设计题不会做

来源:百度知道 编辑:UC知道 时间:2024/09/23 23:27:33
将小于n的所有个位数不等于9的素数在屏幕上打印出来,n的具体值从键盘输入要求每行输出10个数,分行输出

其实这个题,你先把素数筛选出来,然后把个位数为9的去了就是了。
求素数有两种方法:
1.穷举法。
2.筛选法。
你筛选来后,其实只要if(n%10!=9)就输出来了。
下面这个程序效率比较高。。。
穷举法:
#include<stdio.h>
#include<math.h>
void main()
{
int n,m,k;
int i,p,q=0;
printf("输入n的值\n");
scanf("%d",&n);
for(m=2;m<=n-1;m++)
{
if(m%10!=9)
{
p=1;
k=(int)sqrt(m);
for(i=2;i<=k;i=i+1)
{
if(m%i==0) p=0;
if(i==2) i=1;
}
if(p==1)
{
printf("%4d",m);
q++;
if(q%10==0)
printf("\n");
}
}
}
printf("\n");
}

我调试过了肯定可以
#include<stdio.h>
main(void)
{
int i,j,n,k=0;
scanf("%d",&n);
for(i=2;i<n;i++)
{
if(i%10!=9)
{
for(j=2;j<=i;j++)
if(i%j==0)
break;
if(j>=i)<