當前位置:首頁 » 編程語言 » c語言999求最大十個素數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言999求最大十個素數

發布時間: 2022-05-29 19:27:53

A. 用c語言如何編寫100~9999內超級素數的相關問題

個數 和 最大 都不難 關鍵是找素數,給你代碼吧,還有這個不叫超級素數 叫連環素數!
輸入5 就有5位 依次類推
#include<stdio.h>
#include<math.h>
bool GetP(int n)
{
if(n==2) return false;
for(int i=2;i<=sqrt(n)+1;i++)
if(n%i==0)
return true;
return false;
}
void dfs(int k,int cnt,int n)
{
if(GetP(k)) return;
if(cnt==n){printf("%d\n",k);return;}
for(int i=1;i<=9;i+=2)
{
int t=k*10;
dfs(t+i,cnt+1,n);
}
}
int main()
{
int n,m=1;
scanf("%d",&n);
for(int i=2;i<=9;i+=m)
{
dfs(i,1,n);
if(i==3) m++;
}
}

B. C語言求素數

#include<stdio.h>
#include<math.h>
voidmain()
{
intx=100,d=999,a,i,temp;

for(x;x<=d;x++)
{
temp=0;
a=sqrt(x);
for(i=2;i<=a;i++)
{

if(x%i==0)
{
temp=1;
break;
}
}

if(temp==0)
printf("%d",x);
}
}

C. c語言999到9999中的素數

你問的是c語言怎麼計算999到9999中的素數吧?
#include
int main()
{
int i, j;
int count = 0;
for (i = 101; i <= 999; i++)
{
int flag = 1;
for (j = 2; j <= i - 1; j++)
{
if (i%j == 0) //如果不是素數,應該直接跳出循環,計算下一個i
{
flag=0; //並設置標志為0
break;
}
}
if (flag==1) //在循環之外判斷標志,如果是break出來的,肯定flag = 0,即不是素數
{
count++;
printf("%-5d", i);
if (count % 10 == 0)
{
printf(" ");}}}
return 0;
}
}

素數:只能被1和i本身整除1既不是質數也不是合數。

D. C語言 求最大素數

#include"stdio.h"
intprime(intn){//素數判斷
inti;
if(n>2&&!(n&1)||n<2)
return0;
for(i=3;i*i<=n;i+=2)
if(!(n%i))
return0;
return1;
}
intmain(intargv,char*argc[]){
intn,s,t;
printf("Inputn(int1<n<=500)... n=");
if(scanf("%d",&n)!=1||n<2||n>500){
printf("Inputerror,exit... ");
return0;
}
for(t=s=0;t<10&&n>1;n--)
if(prime(n)){
printf("%6d",n);
s+=n;
t++;
}
printf(" sum=%d ",s);
return0;
}

運行樣例:

E. c語言求超級素數

邏輯亂得有點厲害,如

for(n=2;n<m;n++)
if(m%n==0)
break;

這里的break;只結束for(n=2;...這個循環,還在前一個for(k=0;k<3;k++)循環中;可是break;就意味著m已經不是素數了,那麼整個m所在的3位數就不是超級素數,還有什麼必要繼續做for(k=0;k<3;k++)這個循環?這種題比較好的結構是弄一個素數判斷函數,不斷用原數和它不斷除以10的數調用,都返回「真」的就是超級素數,否則不是。代碼如下——

#include"stdio.h"
intprime(intn){//素數
inti;
if(n>2&&!(n&1)||n<2)
return0;
for(i=3;i*i<=n;i+=2)
if(!(n%i))
return0;
return1;
}
intmain(intargc,char*argv[]){
inti,j,k;
for(k=0,i=101;i<=9999;i+=2){
for(j=i;j>0;j/=10)
if(!prime(j))
break;
if(!j)
printf(++k%10?"%5d":"%5d ",i);
}
if(k%10)
printf(" ");
return0;
}

運行結果:

F. 求寫一個C語言程序,1000以內素數最大十個素數求和

#include"stdio.h"
intmain(intargv,char*argc[]){
intn,i,j,k;
printf("Theresultsareasfollows: ");
for(n=1,i=999;n<11;i-=2){
for(j=3;(k=j*j)<=i;j+=2)
if(i%j==0)
break;
if(k>i){
printf("%4d",i);
n++;
}
}
printf(" ");
return0;
}

運行結果:

G. c語言:求1000以內的素數並求出其中最大十個素數之和

通過您的程序可以看出,您想通過一維數組,來計算最大10個素數之和。但是您並沒有將前10位素數賦值給一維數組,所以無法得出正確結果。

我根據您的題目要求,編寫代碼如下:

/*輸出1至1000之間的素數,並求出其中最大十個素數之和......byMr.Kong*/
#include<stdio.h>
intisprime(inta);
main()
{
inti,s=0,n;
for(i=1000;i>=2;i--)/*將素數倒序輸出,方便計算前10位素數*/

if(isprime(i))
{
n++;
printf("%d,",i);
if(n<=10)/*計算前10位素數的和*/
s+=i;

}
printf(" 最大十個素數之和s=%d",s);
}
intisprime(inta)/*定義函數,判斷是否是素數*/
{
inti;
for(i=2;i<a;i++)
if(a%i==0)
return0;
return1;
}

H. 求100∼999中n個最大的素數並輸出(c語言程序設計題,求大神)

最近剛做過的題,望採納!
#include <stdio.h>
#include <math.h>
#include <malloc.h>
void Eratosthenes(int p, int lower, int upper, int *num, int *time)
{
int i, j;
for(i = lower; i<=upper; i++)
{
for(j = p; j < i; j++)
{
if(i%j == 0)
{
break;
}
}
if(j == i)
{
num[*time] = i;
(*time)++;
}
}
}
int main()
{
int lower, upper, k, time = 0;
int *num, i, j, a;
printf("Input lower( >=2) and upper:");
scanf("%d%d",&lower,&upper);
num = (int *)malloc(sizeof(int)*upper);
Eratosthenes(2, lower, upper, num, &time);
printf("一下輸出%d到%d的素數:",lower,upper);
for(k = 0; k < time; k++)
{
printf("%d ", num[k]);
}
for(i=0; i<time; i++)
for(j=i+1; j<time; j++)
{
if(num[i]<num[j])
{
a=num[i];
num[i]=num[j];
num[j]=a;
}
}
printf("\n最大素數為:%d",num[0]);
free(num);
return 0;
}

I. C語言求「輸出1000以內最大的10個素數以及它們的和」,求大神指教

#include<stdio.h>
#include<math.h>

bool isprime(int n)
{
int i;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
return false;
return true;

}

int main()
{
int i=999,sum=0,no=0;
while(no<10)
{
if(isprime(i))
{
sum+=i;
no++;
printf("%d\n",i);

}
i++;

}
printf("%d\n",sum);
return 0;

}

J. 用C語言循環結構求100至999之間最大嗯三個素數

#include<stdio.h>

int main()

{

int i,j,n;

printf("100~999之間最大的3個素數是:");

for(n=0,i=999;n<3&&i>100;i-=2)

{

for(j=2;j*j<=i;j++)

if(0==i%j)

break;

if(j*j>i)

{

n++;

printf(3==n ? "%d " : "%d,",i);

}

}

return 0;

}