「AOJ Problem Set from ALDS1問 0~19」の編集履歴(バックアップ)一覧に戻る
#include<stdio.h> static const int N = 1000; void trace(int A[], int n){ int i; for ( i = 1; i <= n; i++ ){ if ( i > 1 ) printf(" "); printf("%d", A[i]); } printf("\n"); } int main(){ int n, i, j; int A[N+1]; scanf("%d", &n); for ( i = 1; i <= n; i++ ) scanf("%d", &A[i]); trace(A, n); for(int j=2;j<=n;j++){ int key=A[j]; i=j-1; while(i > 0 && A[i]>key){ A[i+1]=A[i]; i--; } A[i+1]=key; trace(A,n); } return 0; }
#include<stdio.h> int gcd(int a,int b){ int c; while(a!=0){ c=a; a=b%a; b=c; } return b; } int main(){ int a,b; scanf("%d %d",&a,&b); printf("%d\n",gcd(a,b)); }
#include<stdio.h> #include<vector> std::vector<int> prime_list; void calc_prime_list(){ int is_prime[10001]={0}; for(int i=2;i<400;i++){ if(is_prime[i]==1)continue; for(int j=i*2;j<10001;j+=i){ is_prime[j]=1; } } for(int i=2;i<10001;i++){ if(is_prime[i]==0)prime_list.push_back(i); } } bool prime_check(int n){ for(int i=0;i<prime_list.size();i++){ int p=prime_list[i]; if(p*p>n)break; if(n%p==0)return false; } return true; } int main(){ calc_prime_list(); int n,ans=0,num; scanf("%d",&n); while(n--){ scanf("%d",&num); ans+=prime_check(num); } printf("%d\n",ans); }
#include<stdio.h> void print(int A[],int n){ for(int i=1;i<n;i++)printf("%d ",A[i]); printf("%d\n",A[n]); } int main(){ int A[102],n,ans=0; scanf("%d",&n); for(int i=1;i<=n;i++)scanf("%d",&A[i]); for(int i=1;i<=n;i++){ for(int j=n;j>i;j--){ if(A[j]<A[j-1]){ int t=A[j-1]; A[j-1]=A[j]; A[j]=t; ans++; } } } print(A,n); printf("%d\n",ans); }
#include<stdio.h> void print(int A[],int n){ for(int i=1;i<n;i++)printf("%d ",A[i]); printf("%d\n",A[n]); } int main(){ int A[102],n,ans=0; scanf("%d",&n); for(int i=1;i<=n;i++)scanf("%d",&A[i]); for(int i=1;i<=n;i++){ int mini=i; for(int j=i;j<=n;j++){ if(A[j]<A[mini]){ mini=j; } } if(i!=mini){ int t=A[i]; A[i]=A[mini]; A[mini]=t; ans++; } } print(A,n); printf("%d\n",ans); }