1 条题解
-
0
C :
#include<stdio.h> #include<math.h> int main() { int n,i,j,a; double k; while(~scanf("%d",&n)) { a=0; for(i=2;i<=n;i++) { k=sqrt(i); for(j=2;j<=k;j++) { if(i%j==0) { break; } } if(j>k) { printf("%d",i); a++; if(a%5==0) printf("\n"); else printf(" "); } } printf("\n"); } return 0; }
C++ :
// // main.cpp // 上机练习 // // Created by 朱世起 朱 on 2017/2/20. // Copyright © 2017年 朱世起 朱. All rights reserved. // #include <iostream> #include <stdio.h> #include <string> using namespace std; int main(){ long n,temp; cin>>n; bool *a=new bool[n+1]; for (long i=2; i<=n; ++i) { a[i]=true; } for (long i=2; i<=n+1; ++i) { for (long k=2; k<=i; ++k) { temp=i*k; if(temp<=n)a[temp]=false; else break; } } //输出 long set=1; for (long j=2 ;j<=n; ++j) { if (set==6){cout<<endl;set=1;} if (set==1 && a[j]==true){cout<<j;++set;} else if(a[j]==true){cout<<" "<<j;++set;} } return 0; }
Pascal :
var a:array[1..100]of boolean; n:integer; i,j,t:integer; begin readln(n); fillchar(a,sizeof(a),true); a[1]:=false; for i:=2 to n do begin if a[i]=true then for j:=2 to (100 div i) do a[i*j]:=false; end; for i:=2 to n do if a[i]=true then begin inc(t); write(i,' '); if t mod 5=0 then writeln; end; end.
- 1
信息
- ID
- 138
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 6
- 已通过
- 2
- 上传者